react-native-unistyles 3.0.0-alpha.9 → 3.0.0-beta.2

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 (759) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +30 -41
  3. package/Unistyles.podspec +8 -2
  4. package/android/CMakeLists.txt +22 -45
  5. package/android/build.gradle +22 -5
  6. package/android/src/main/cxx/NativeUnistylesModule.cpp +71 -0
  7. package/android/src/main/cxx/NativeUnistylesModule.h +42 -0
  8. package/android/src/main/cxx/cpp-adapter.cpp +8 -86
  9. package/android/src/main/java/com/unistyles/Equatable.kt +61 -0
  10. package/android/src/main/java/com/unistyles/NativePlatform+android.kt +294 -0
  11. package/android/src/main/java/com/unistyles/NativePlatform+insets.kt +152 -0
  12. package/android/src/main/java/com/unistyles/NativePlatform+listener.kt +59 -0
  13. package/android/src/main/java/com/unistyles/UnistylesModule.kt +51 -0
  14. package/android/src/main/java/com/unistyles/UnistylesPackage.kt +16 -14
  15. package/cxx/NativePlatform.h +11 -0
  16. package/cxx/common/Constants.h +5 -0
  17. package/cxx/common/Helpers.h +59 -6
  18. package/cxx/core/HostStyle.cpp +14 -4
  19. package/cxx/core/HostStyle.h +6 -1
  20. package/cxx/core/StyleSheet.h +0 -1
  21. package/cxx/core/Unistyle.h +8 -5
  22. package/cxx/core/UnistyleData.h +4 -3
  23. package/cxx/core/UnistyleWrapper.h +102 -7
  24. package/cxx/core/UnistylesCommitHook.cpp +14 -18
  25. package/cxx/core/UnistylesCommitHook.h +6 -11
  26. package/cxx/core/UnistylesCommitShadowNode.h +13 -0
  27. package/cxx/core/UnistylesMountHook.cpp +28 -0
  28. package/cxx/core/UnistylesMountHook.h +27 -0
  29. package/cxx/core/UnistylesRegistry.cpp +104 -51
  30. package/cxx/core/UnistylesRegistry.h +17 -11
  31. package/cxx/core/UnistylesState.cpp +29 -8
  32. package/cxx/core/UnistylesState.h +5 -2
  33. package/cxx/hybridObjects/HybridNavigationBar.cpp +0 -4
  34. package/cxx/hybridObjects/HybridNavigationBar.h +3 -4
  35. package/cxx/hybridObjects/HybridShadowRegistry.cpp +114 -13
  36. package/cxx/hybridObjects/HybridShadowRegistry.h +21 -2
  37. package/cxx/hybridObjects/HybridStatusBar.cpp +0 -4
  38. package/cxx/hybridObjects/HybridStatusBar.h +3 -4
  39. package/cxx/hybridObjects/HybridStyleSheet.cpp +145 -19
  40. package/cxx/hybridObjects/HybridStyleSheet.h +27 -5
  41. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +82 -11
  42. package/cxx/hybridObjects/HybridUnistylesRuntime.h +17 -3
  43. package/cxx/parser/Parser.cpp +363 -70
  44. package/cxx/parser/Parser.h +10 -6
  45. package/cxx/shadowTree/ShadowLeafUpdate.h +3 -1
  46. package/cxx/shadowTree/ShadowTrafficController.h +71 -0
  47. package/cxx/shadowTree/ShadowTreeManager.cpp +28 -19
  48. package/cxx/shadowTree/ShadowTreeManager.h +3 -2
  49. package/ios/Equatable.swift +2 -1
  50. package/ios/Extensions.swift +3 -1
  51. package/ios/NativePlatform+ios.swift +34 -9
  52. package/ios/NativePlatform+keyboard.swift +83 -0
  53. package/ios/NativePlatformListener+ios.swift +36 -24
  54. package/ios/Unistyles.h +1 -0
  55. package/ios/UnistylesModuleOnLoad.h +8 -2
  56. package/ios/UnistylesModuleOnLoad.mm +11 -3
  57. package/lib/commonjs/components/Display.js +18 -0
  58. package/lib/commonjs/components/Display.js.map +1 -0
  59. package/lib/commonjs/components/Hide.js +18 -0
  60. package/lib/commonjs/components/Hide.js.map +1 -0
  61. package/lib/commonjs/components/ScopedTheme.js +36 -0
  62. package/lib/commonjs/components/ScopedTheme.js.map +1 -0
  63. package/lib/commonjs/components/Variants.js +33 -0
  64. package/lib/commonjs/components/Variants.js.map +1 -0
  65. package/lib/commonjs/components/index.js +34 -0
  66. package/lib/commonjs/components/index.js.map +1 -0
  67. package/lib/commonjs/components/native/ActivityIndicator.js +10 -0
  68. package/lib/commonjs/components/native/ActivityIndicator.js.map +1 -0
  69. package/lib/commonjs/components/native/FlatList.js +10 -0
  70. package/lib/commonjs/components/native/FlatList.js.map +1 -0
  71. package/lib/commonjs/components/native/Image.js +10 -0
  72. package/lib/commonjs/components/native/Image.js.map +1 -0
  73. package/lib/commonjs/components/native/ImageBackground.js +10 -0
  74. package/lib/commonjs/components/native/ImageBackground.js.map +1 -0
  75. package/lib/commonjs/components/native/KeyboardAvoidingView.js +10 -0
  76. package/lib/commonjs/components/native/KeyboardAvoidingView.js.map +1 -0
  77. package/lib/commonjs/components/native/Pressable.js +75 -0
  78. package/lib/commonjs/components/native/Pressable.js.map +1 -0
  79. package/lib/commonjs/components/native/Pressable.native.js +48 -0
  80. package/lib/commonjs/components/native/Pressable.native.js.map +1 -0
  81. package/lib/commonjs/components/native/RefreshControl.js +10 -0
  82. package/lib/commonjs/components/native/RefreshControl.js.map +1 -0
  83. package/lib/commonjs/components/native/ScrollView.js +10 -0
  84. package/lib/commonjs/components/native/ScrollView.js.map +1 -0
  85. package/lib/commonjs/components/native/SectionList.js +10 -0
  86. package/lib/commonjs/components/native/SectionList.js.map +1 -0
  87. package/lib/commonjs/components/native/Switch.js +10 -0
  88. package/lib/commonjs/components/native/Switch.js.map +1 -0
  89. package/lib/commonjs/components/native/Text.js +10 -0
  90. package/lib/commonjs/components/native/Text.js.map +1 -0
  91. package/lib/commonjs/components/native/TextInput.js +10 -0
  92. package/lib/commonjs/components/native/TextInput.js.map +1 -0
  93. package/lib/commonjs/components/native/TouchableHighlight.js +10 -0
  94. package/lib/commonjs/components/native/TouchableHighlight.js.map +1 -0
  95. package/lib/commonjs/components/native/TouchableOpacity.js +10 -0
  96. package/lib/commonjs/components/native/TouchableOpacity.js.map +1 -0
  97. package/lib/commonjs/components/native/View.js +10 -0
  98. package/lib/commonjs/components/native/View.js.map +1 -0
  99. package/lib/commonjs/components/native/VirtualizedList.js +10 -0
  100. package/lib/commonjs/components/native/VirtualizedList.js.map +1 -0
  101. package/lib/commonjs/core/createUnistylesComponent.js +16 -0
  102. package/lib/commonjs/core/createUnistylesComponent.js.map +1 -0
  103. package/lib/commonjs/core/createUnistylesElement.js +16 -0
  104. package/lib/commonjs/core/createUnistylesElement.js.map +1 -0
  105. package/lib/commonjs/core/createUnistylesImageBackground.js +27 -0
  106. package/lib/commonjs/core/createUnistylesImageBackground.js.map +1 -0
  107. package/lib/commonjs/core/index.js +41 -0
  108. package/lib/commonjs/core/index.js.map +1 -0
  109. package/lib/commonjs/core/passForwardRef.js +27 -0
  110. package/lib/commonjs/core/passForwardRef.js.map +1 -0
  111. package/lib/commonjs/core/withUnistyles/index.js +13 -0
  112. package/lib/commonjs/core/withUnistyles/index.js.map +1 -0
  113. package/lib/commonjs/core/withUnistyles/types.js +8 -0
  114. package/lib/commonjs/core/withUnistyles/types.js.map +1 -0
  115. package/lib/commonjs/core/withUnistyles/useDependencies.js +81 -0
  116. package/lib/commonjs/core/withUnistyles/useDependencies.js.map +1 -0
  117. package/lib/commonjs/core/withUnistyles/withUnistyles.js +88 -0
  118. package/lib/commonjs/core/withUnistyles/withUnistyles.js.map +1 -0
  119. package/lib/commonjs/core/withUnistyles/withUnistyles.native.js +96 -0
  120. package/lib/commonjs/core/withUnistyles/withUnistyles.native.js.map +1 -0
  121. package/lib/commonjs/hooks/index.js +13 -0
  122. package/lib/commonjs/hooks/index.js.map +1 -0
  123. package/lib/commonjs/hooks/useMedia.js +43 -0
  124. package/lib/commonjs/hooks/useMedia.js.map +1 -0
  125. package/lib/commonjs/hooks/useMedia.native.js +60 -0
  126. package/lib/commonjs/hooks/useMedia.native.js.map +1 -0
  127. package/lib/commonjs/index.js +45 -11
  128. package/lib/commonjs/index.js.map +1 -1
  129. package/lib/commonjs/mq.js +31 -18
  130. package/lib/commonjs/mq.js.map +1 -1
  131. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js +1 -0
  132. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
  133. package/lib/commonjs/specs/NavigtionBar/index.js +0 -15
  134. package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
  135. package/lib/commonjs/specs/ShadowRegistry/index.js +12 -9
  136. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  137. package/lib/commonjs/specs/StatusBar/index.js +0 -5
  138. package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
  139. package/lib/commonjs/specs/StyleSheet/index.js +1 -0
  140. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  141. package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js +1 -2
  142. package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js.map +1 -1
  143. package/lib/commonjs/specs/UnistylesRuntime/index.js +0 -2
  144. package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
  145. package/lib/commonjs/specs/index.js +17 -36
  146. package/lib/commonjs/specs/index.js.map +1 -1
  147. package/lib/commonjs/specs/index.native.js +54 -0
  148. package/lib/commonjs/specs/index.native.js.map +1 -0
  149. package/lib/commonjs/types/stylesheet.js.map +1 -1
  150. package/lib/commonjs/utils.js +26 -0
  151. package/lib/commonjs/utils.js.map +1 -0
  152. package/lib/commonjs/web/convert/index.js +27 -24
  153. package/lib/commonjs/web/convert/index.js.map +1 -1
  154. package/lib/commonjs/web/convert/object/boxShadow.js +59 -0
  155. package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -0
  156. package/lib/commonjs/web/convert/object/filter.js +42 -0
  157. package/lib/commonjs/web/convert/object/filter.js.map +1 -0
  158. package/lib/commonjs/web/convert/object/index.js +39 -0
  159. package/lib/commonjs/web/convert/object/index.js.map +1 -0
  160. package/lib/commonjs/web/convert/object/objectStyle.js +56 -0
  161. package/lib/commonjs/web/convert/object/objectStyle.js.map +1 -0
  162. package/lib/commonjs/web/convert/object/transform.js +27 -0
  163. package/lib/commonjs/web/convert/object/transform.js.map +1 -0
  164. package/lib/commonjs/web/convert/pseudo.js +10 -0
  165. package/lib/commonjs/web/convert/pseudo.js.map +1 -0
  166. package/lib/commonjs/web/convert/{boxShadow.js → shadow/boxShadow.js} +22 -37
  167. package/lib/commonjs/web/convert/shadow/boxShadow.js.map +1 -0
  168. package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js +38 -0
  169. package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
  170. package/lib/commonjs/web/convert/shadow/index.js +28 -0
  171. package/lib/commonjs/web/convert/shadow/index.js.map +1 -0
  172. package/lib/commonjs/web/convert/{textShadow.js → shadow/textShadow.js} +21 -35
  173. package/lib/commonjs/web/convert/shadow/textShadow.js.map +1 -0
  174. package/lib/commonjs/web/convert/style.js +11 -7
  175. package/lib/commonjs/web/convert/style.js.map +1 -1
  176. package/lib/commonjs/web/convert/types.js.map +1 -1
  177. package/lib/commonjs/web/convert/utils.js +8 -4
  178. package/lib/commonjs/web/convert/utils.js.map +1 -1
  179. package/lib/commonjs/web/create.js +21 -74
  180. package/lib/commonjs/web/create.js.map +1 -1
  181. package/lib/commonjs/web/index.js +18 -7
  182. package/lib/commonjs/web/index.js.map +1 -1
  183. package/lib/commonjs/web/listener.js +61 -0
  184. package/lib/commonjs/web/listener.js.map +1 -0
  185. package/lib/commonjs/web/mock.js +2 -12
  186. package/lib/commonjs/web/mock.js.map +1 -1
  187. package/lib/commonjs/web/registry.js +161 -19
  188. package/lib/commonjs/web/registry.js.map +1 -1
  189. package/lib/commonjs/web/runtime.js +25 -14
  190. package/lib/commonjs/web/runtime.js.map +1 -1
  191. package/lib/commonjs/web/shadowRegistry.js +150 -0
  192. package/lib/commonjs/web/shadowRegistry.js.map +1 -0
  193. package/lib/commonjs/web/state.js +31 -72
  194. package/lib/commonjs/web/state.js.map +1 -1
  195. package/lib/commonjs/web/utils/common.js +39 -0
  196. package/lib/commonjs/web/utils/common.js.map +1 -0
  197. package/lib/commonjs/web/utils/index.js +28 -0
  198. package/lib/commonjs/web/utils/index.js.map +1 -0
  199. package/lib/commonjs/web/utils/unistyle.js +77 -0
  200. package/lib/commonjs/web/utils/unistyle.js.map +1 -0
  201. package/lib/commonjs/web/{variants/getVariants.js → variants.js} +2 -2
  202. package/lib/commonjs/web/variants.js.map +1 -0
  203. package/lib/module/components/Display.js +13 -0
  204. package/lib/module/components/Display.js.map +1 -0
  205. package/lib/module/components/Hide.js +13 -0
  206. package/lib/module/components/Hide.js.map +1 -0
  207. package/lib/module/components/ScopedTheme.js +29 -0
  208. package/lib/module/components/ScopedTheme.js.map +1 -0
  209. package/lib/module/components/Variants.js +26 -0
  210. package/lib/module/components/Variants.js.map +1 -0
  211. package/lib/module/components/index.js +7 -0
  212. package/lib/module/components/index.js.map +1 -0
  213. package/lib/module/components/native/ActivityIndicator.js +6 -0
  214. package/lib/module/components/native/ActivityIndicator.js.map +1 -0
  215. package/lib/module/components/native/FlatList.js +6 -0
  216. package/lib/module/components/native/FlatList.js.map +1 -0
  217. package/lib/module/components/native/Image.js +6 -0
  218. package/lib/module/components/native/Image.js.map +1 -0
  219. package/lib/module/components/native/ImageBackground.js +6 -0
  220. package/lib/module/components/native/ImageBackground.js.map +1 -0
  221. package/lib/module/components/native/KeyboardAvoidingView.js +6 -0
  222. package/lib/module/components/native/KeyboardAvoidingView.js.map +1 -0
  223. package/lib/module/components/native/Pressable.js +69 -0
  224. package/lib/module/components/native/Pressable.js.map +1 -0
  225. package/lib/module/components/native/Pressable.native.js +42 -0
  226. package/lib/module/components/native/Pressable.native.js.map +1 -0
  227. package/lib/module/components/native/RefreshControl.js +6 -0
  228. package/lib/module/components/native/RefreshControl.js.map +1 -0
  229. package/lib/module/components/native/ScrollView.js +6 -0
  230. package/lib/module/components/native/ScrollView.js.map +1 -0
  231. package/lib/module/components/native/SectionList.js +6 -0
  232. package/lib/module/components/native/SectionList.js.map +1 -0
  233. package/lib/module/components/native/Switch.js +6 -0
  234. package/lib/module/components/native/Switch.js.map +1 -0
  235. package/lib/module/components/native/Text.js +6 -0
  236. package/lib/module/components/native/Text.js.map +1 -0
  237. package/lib/module/components/native/TextInput.js +6 -0
  238. package/lib/module/components/native/TextInput.js.map +1 -0
  239. package/lib/module/components/native/TouchableHighlight.js +6 -0
  240. package/lib/module/components/native/TouchableHighlight.js.map +1 -0
  241. package/lib/module/components/native/TouchableOpacity.js +6 -0
  242. package/lib/module/components/native/TouchableOpacity.js.map +1 -0
  243. package/lib/module/components/native/View.js +6 -0
  244. package/lib/module/components/native/View.js.map +1 -0
  245. package/lib/module/components/native/VirtualizedList.js +6 -0
  246. package/lib/module/components/native/VirtualizedList.js.map +1 -0
  247. package/lib/module/core/createUnistylesComponent.js +11 -0
  248. package/lib/module/core/createUnistylesComponent.js.map +1 -0
  249. package/lib/module/core/createUnistylesElement.js +10 -0
  250. package/lib/module/core/createUnistylesElement.js.map +1 -0
  251. package/lib/module/core/createUnistylesImageBackground.js +21 -0
  252. package/lib/module/core/createUnistylesImageBackground.js.map +1 -0
  253. package/lib/module/core/index.js +8 -0
  254. package/lib/module/core/index.js.map +1 -0
  255. package/lib/module/core/passForwardRef.js +22 -0
  256. package/lib/module/core/passForwardRef.js.map +1 -0
  257. package/lib/module/core/withUnistyles/index.js +4 -0
  258. package/lib/module/core/withUnistyles/index.js.map +1 -0
  259. package/lib/module/core/withUnistyles/types.js +4 -0
  260. package/lib/module/core/withUnistyles/types.js.map +1 -0
  261. package/lib/module/core/withUnistyles/useDependencies.js +75 -0
  262. package/lib/module/core/withUnistyles/useDependencies.js.map +1 -0
  263. package/lib/module/core/withUnistyles/withUnistyles.js +81 -0
  264. package/lib/module/core/withUnistyles/withUnistyles.js.map +1 -0
  265. package/lib/module/core/withUnistyles/withUnistyles.native.js +89 -0
  266. package/lib/module/core/withUnistyles/withUnistyles.native.js.map +1 -0
  267. package/lib/module/hooks/index.js +4 -0
  268. package/lib/module/hooks/index.js.map +1 -0
  269. package/lib/module/hooks/useMedia.js +38 -0
  270. package/lib/module/hooks/useMedia.js.map +1 -0
  271. package/lib/module/hooks/useMedia.native.js +55 -0
  272. package/lib/module/hooks/useMedia.native.js.map +1 -0
  273. package/lib/module/index.js +2 -9
  274. package/lib/module/index.js.map +1 -1
  275. package/lib/module/mq.js +27 -17
  276. package/lib/module/mq.js.map +1 -1
  277. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js +1 -0
  278. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
  279. package/lib/module/specs/NavigtionBar/index.js +0 -10
  280. package/lib/module/specs/NavigtionBar/index.js.map +1 -1
  281. package/lib/module/specs/ShadowRegistry/index.js +12 -9
  282. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  283. package/lib/module/specs/StatusBar/index.js +1 -6
  284. package/lib/module/specs/StatusBar/index.js.map +1 -1
  285. package/lib/module/specs/StyleSheet/index.js +1 -0
  286. package/lib/module/specs/StyleSheet/index.js.map +1 -1
  287. package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js +1 -2
  288. package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js.map +1 -1
  289. package/lib/module/specs/UnistylesRuntime/index.js +0 -2
  290. package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
  291. package/lib/module/specs/index.js +2 -7
  292. package/lib/module/specs/index.js.map +1 -1
  293. package/lib/module/specs/index.native.js +11 -0
  294. package/lib/module/specs/index.native.js.map +1 -0
  295. package/lib/module/types/stylesheet.js.map +1 -1
  296. package/lib/module/utils.js +21 -0
  297. package/lib/module/utils.js.map +1 -0
  298. package/lib/module/web/convert/index.js +23 -20
  299. package/lib/module/web/convert/index.js.map +1 -1
  300. package/lib/module/web/convert/object/boxShadow.js +54 -0
  301. package/lib/module/web/convert/object/boxShadow.js.map +1 -0
  302. package/lib/module/web/convert/object/filter.js +37 -0
  303. package/lib/module/web/convert/object/filter.js.map +1 -0
  304. package/lib/module/web/convert/object/index.js +6 -0
  305. package/lib/module/web/convert/object/index.js.map +1 -0
  306. package/lib/module/web/convert/object/objectStyle.js +51 -0
  307. package/lib/module/web/convert/object/objectStyle.js.map +1 -0
  308. package/lib/module/web/convert/object/transform.js +22 -0
  309. package/lib/module/web/convert/object/transform.js.map +1 -0
  310. package/lib/module/web/convert/pseudo.js +5 -0
  311. package/lib/module/web/convert/pseudo.js.map +1 -0
  312. package/lib/module/web/convert/shadow/boxShadow.js +57 -0
  313. package/lib/module/web/convert/shadow/boxShadow.js.map +1 -0
  314. package/lib/module/web/convert/shadow/getShadowBreakpoints.js +33 -0
  315. package/lib/module/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
  316. package/lib/module/web/convert/shadow/index.js +5 -0
  317. package/lib/module/web/convert/shadow/index.js.map +1 -0
  318. package/lib/module/web/convert/shadow/textShadow.js +54 -0
  319. package/lib/module/web/convert/shadow/textShadow.js.map +1 -0
  320. package/lib/module/web/convert/style.js +11 -7
  321. package/lib/module/web/convert/style.js.map +1 -1
  322. package/lib/module/web/convert/types.js.map +1 -1
  323. package/lib/module/web/convert/utils.js +5 -3
  324. package/lib/module/web/convert/utils.js.map +1 -1
  325. package/lib/module/web/create.js +22 -75
  326. package/lib/module/web/create.js.map +1 -1
  327. package/lib/module/web/index.js +10 -4
  328. package/lib/module/web/index.js.map +1 -1
  329. package/lib/module/web/listener.js +57 -0
  330. package/lib/module/web/listener.js.map +1 -0
  331. package/lib/module/web/mock.js +1 -11
  332. package/lib/module/web/mock.js.map +1 -1
  333. package/lib/module/web/registry.js +162 -20
  334. package/lib/module/web/registry.js.map +1 -1
  335. package/lib/module/web/runtime.js +25 -14
  336. package/lib/module/web/runtime.js.map +1 -1
  337. package/lib/module/web/shadowRegistry.js +146 -0
  338. package/lib/module/web/shadowRegistry.js.map +1 -0
  339. package/lib/module/web/state.js +32 -73
  340. package/lib/module/web/state.js.map +1 -1
  341. package/lib/module/web/utils/common.js +28 -0
  342. package/lib/module/web/utils/common.js.map +1 -0
  343. package/lib/module/web/utils/index.js +5 -0
  344. package/lib/module/web/utils/index.js.map +1 -0
  345. package/lib/module/web/utils/unistyle.js +65 -0
  346. package/lib/module/web/utils/unistyle.js.map +1 -0
  347. package/lib/module/web/{variants/getVariants.js → variants.js} +2 -2
  348. package/lib/module/web/variants.js.map +1 -0
  349. package/lib/typescript/src/components/Display.d.ts +7 -0
  350. package/lib/typescript/src/components/Display.d.ts.map +1 -0
  351. package/lib/typescript/src/components/Hide.d.ts +7 -0
  352. package/lib/typescript/src/components/Hide.d.ts.map +1 -0
  353. package/lib/typescript/src/components/ScopedTheme.d.ts +8 -0
  354. package/lib/typescript/src/components/ScopedTheme.d.ts.map +1 -0
  355. package/lib/typescript/src/components/Variants.d.ts +7 -0
  356. package/lib/typescript/src/components/Variants.d.ts.map +1 -0
  357. package/lib/typescript/src/components/index.d.ts +5 -0
  358. package/lib/typescript/src/components/index.d.ts.map +1 -0
  359. package/lib/typescript/src/components/native/ActivityIndicator.d.ts +2 -0
  360. package/lib/typescript/src/components/native/ActivityIndicator.d.ts.map +1 -0
  361. package/lib/typescript/src/components/native/FlatList.d.ts +2 -0
  362. package/lib/typescript/src/components/native/FlatList.d.ts.map +1 -0
  363. package/lib/typescript/src/components/native/Image.d.ts +2 -0
  364. package/lib/typescript/src/components/native/Image.d.ts.map +1 -0
  365. package/lib/typescript/src/components/native/ImageBackground.d.ts +3 -0
  366. package/lib/typescript/src/components/native/ImageBackground.d.ts.map +1 -0
  367. package/lib/typescript/src/components/native/KeyboardAvoidingView.d.ts +2 -0
  368. package/lib/typescript/src/components/native/KeyboardAvoidingView.d.ts.map +1 -0
  369. package/lib/typescript/src/components/native/Pressable.d.ts +15 -0
  370. package/lib/typescript/src/components/native/Pressable.d.ts.map +1 -0
  371. package/lib/typescript/src/components/native/Pressable.native.d.ts +6 -0
  372. package/lib/typescript/src/components/native/Pressable.native.d.ts.map +1 -0
  373. package/lib/typescript/src/components/native/RefreshControl.d.ts +2 -0
  374. package/lib/typescript/src/components/native/RefreshControl.d.ts.map +1 -0
  375. package/lib/typescript/src/components/native/ScrollView.d.ts +2 -0
  376. package/lib/typescript/src/components/native/ScrollView.d.ts.map +1 -0
  377. package/lib/typescript/src/components/native/SectionList.d.ts +2 -0
  378. package/lib/typescript/src/components/native/SectionList.d.ts.map +1 -0
  379. package/lib/typescript/src/components/native/Switch.d.ts +2 -0
  380. package/lib/typescript/src/components/native/Switch.d.ts.map +1 -0
  381. package/lib/typescript/src/components/native/Text.d.ts +2 -0
  382. package/lib/typescript/src/components/native/Text.d.ts.map +1 -0
  383. package/lib/typescript/src/components/native/TextInput.d.ts +2 -0
  384. package/lib/typescript/src/components/native/TextInput.d.ts.map +1 -0
  385. package/lib/typescript/src/components/native/TouchableHighlight.d.ts +2 -0
  386. package/lib/typescript/src/components/native/TouchableHighlight.d.ts.map +1 -0
  387. package/lib/typescript/src/components/native/TouchableOpacity.d.ts +2 -0
  388. package/lib/typescript/src/components/native/TouchableOpacity.d.ts.map +1 -0
  389. package/lib/typescript/src/components/native/View.d.ts +2 -0
  390. package/lib/typescript/src/components/native/View.d.ts.map +1 -0
  391. package/lib/typescript/src/components/native/VirtualizedList.d.ts +2 -0
  392. package/lib/typescript/src/components/native/VirtualizedList.d.ts.map +1 -0
  393. package/lib/typescript/src/core/createUnistylesComponent.d.ts +14 -0
  394. package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +1 -0
  395. package/lib/typescript/src/core/createUnistylesElement.d.ts +3 -0
  396. package/lib/typescript/src/core/createUnistylesElement.d.ts.map +1 -0
  397. package/lib/typescript/src/core/createUnistylesImageBackground.d.ts +4 -0
  398. package/lib/typescript/src/core/createUnistylesImageBackground.d.ts.map +1 -0
  399. package/lib/typescript/src/core/index.d.ts +6 -0
  400. package/lib/typescript/src/core/index.d.ts.map +1 -0
  401. package/lib/typescript/src/core/passForwardRef.d.ts +3 -0
  402. package/lib/typescript/src/core/passForwardRef.d.ts.map +1 -0
  403. package/lib/typescript/src/core/withUnistyles/index.d.ts +2 -0
  404. package/lib/typescript/src/core/withUnistyles/index.d.ts.map +1 -0
  405. package/lib/typescript/src/core/withUnistyles/types.d.ts +6 -0
  406. package/lib/typescript/src/core/withUnistyles/types.d.ts.map +1 -0
  407. package/lib/typescript/src/core/withUnistyles/useDependencies.d.ts +13 -0
  408. package/lib/typescript/src/core/withUnistyles/useDependencies.d.ts.map +1 -0
  409. package/lib/typescript/src/core/withUnistyles/withUnistyles.d.ts +11 -0
  410. package/lib/typescript/src/core/withUnistyles/withUnistyles.d.ts.map +1 -0
  411. package/lib/typescript/src/core/withUnistyles/withUnistyles.native.d.ts +8 -0
  412. package/lib/typescript/src/core/withUnistyles/withUnistyles.native.d.ts.map +1 -0
  413. package/lib/typescript/src/hooks/index.d.ts +2 -0
  414. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  415. package/lib/typescript/src/hooks/useMedia.d.ts +6 -0
  416. package/lib/typescript/src/hooks/useMedia.d.ts.map +1 -0
  417. package/lib/typescript/src/hooks/useMedia.native.d.ts +6 -0
  418. package/lib/typescript/src/hooks/useMedia.native.d.ts.map +1 -0
  419. package/lib/typescript/src/index.d.ts +3 -0
  420. package/lib/typescript/src/index.d.ts.map +1 -1
  421. package/lib/typescript/src/mq.d.ts +8 -0
  422. package/lib/typescript/src/mq.d.ts.map +1 -1
  423. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts +8 -6
  424. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
  425. package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts +0 -1
  426. package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts.map +1 -1
  427. package/lib/typescript/src/specs/NavigtionBar/index.d.ts +1 -10
  428. package/lib/typescript/src/specs/NavigtionBar/index.d.ts.map +1 -1
  429. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +9 -4
  430. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  431. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +21 -0
  432. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
  433. package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts +0 -1
  434. package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts.map +1 -1
  435. package/lib/typescript/src/specs/StatusBar/index.d.ts +2 -4
  436. package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
  437. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts +3 -1
  438. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts.map +1 -1
  439. package/lib/typescript/src/specs/StyleSheet/index.d.ts +5 -3
  440. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  441. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts +1 -1
  442. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
  443. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +4 -2
  444. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
  445. package/lib/typescript/src/specs/index.d.ts +3 -9
  446. package/lib/typescript/src/specs/index.d.ts.map +1 -1
  447. package/lib/typescript/src/specs/index.native.d.ts +12 -0
  448. package/lib/typescript/src/specs/index.native.d.ts.map +1 -0
  449. package/lib/typescript/src/types/breakpoints.d.ts +11 -11
  450. package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
  451. package/lib/typescript/src/types/common.d.ts +2 -0
  452. package/lib/typescript/src/types/common.d.ts.map +1 -1
  453. package/lib/typescript/src/types/index.d.ts +2 -2
  454. package/lib/typescript/src/types/index.d.ts.map +1 -1
  455. package/lib/typescript/src/types/stylesheet.d.ts +6 -4
  456. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
  457. package/lib/typescript/src/types/variants.d.ts +4 -1
  458. package/lib/typescript/src/types/variants.d.ts.map +1 -1
  459. package/lib/typescript/src/utils.d.ts +2 -0
  460. package/lib/typescript/src/utils.d.ts.map +1 -0
  461. package/lib/typescript/src/web/convert/index.d.ts +1 -2
  462. package/lib/typescript/src/web/convert/index.d.ts.map +1 -1
  463. package/lib/typescript/src/web/convert/object/boxShadow.d.ts +9 -0
  464. package/lib/typescript/src/web/convert/object/boxShadow.d.ts.map +1 -0
  465. package/lib/typescript/src/web/convert/object/filter.d.ts +3 -0
  466. package/lib/typescript/src/web/convert/object/filter.d.ts.map +1 -0
  467. package/lib/typescript/src/web/convert/object/index.d.ts +4 -0
  468. package/lib/typescript/src/web/convert/object/index.d.ts.map +1 -0
  469. package/lib/typescript/src/web/convert/object/objectStyle.d.ts +5 -0
  470. package/lib/typescript/src/web/convert/object/objectStyle.d.ts.map +1 -0
  471. package/lib/typescript/src/web/convert/object/transform.d.ts +3 -0
  472. package/lib/typescript/src/web/convert/object/transform.d.ts.map +1 -0
  473. package/lib/typescript/src/web/convert/pseudo.d.ts +6 -0
  474. package/lib/typescript/src/web/convert/pseudo.d.ts.map +1 -0
  475. package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts +8 -0
  476. package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts.map +1 -0
  477. package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts +2 -0
  478. package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts.map +1 -0
  479. package/lib/typescript/src/web/convert/shadow/index.d.ts +3 -0
  480. package/lib/typescript/src/web/convert/shadow/index.d.ts.map +1 -0
  481. package/lib/typescript/src/web/convert/shadow/textShadow.d.ts +8 -0
  482. package/lib/typescript/src/web/convert/shadow/textShadow.d.ts.map +1 -0
  483. package/lib/typescript/src/web/convert/style.d.ts +1 -2
  484. package/lib/typescript/src/web/convert/style.d.ts.map +1 -1
  485. package/lib/typescript/src/web/convert/types.d.ts +7 -1
  486. package/lib/typescript/src/web/convert/types.d.ts.map +1 -1
  487. package/lib/typescript/src/web/convert/utils.d.ts +8 -4
  488. package/lib/typescript/src/web/convert/utils.d.ts.map +1 -1
  489. package/lib/typescript/src/web/create.d.ts +1 -2447
  490. package/lib/typescript/src/web/create.d.ts.map +1 -1
  491. package/lib/typescript/src/web/index.d.ts +10 -2448
  492. package/lib/typescript/src/web/index.d.ts.map +1 -1
  493. package/lib/typescript/src/web/{listener/listener.d.ts → listener.d.ts} +5 -2
  494. package/lib/typescript/src/web/listener.d.ts.map +1 -0
  495. package/lib/typescript/src/web/mock.d.ts +0 -9
  496. package/lib/typescript/src/web/mock.d.ts.map +1 -1
  497. package/lib/typescript/src/web/registry.d.ts +17 -6
  498. package/lib/typescript/src/web/registry.d.ts.map +1 -1
  499. package/lib/typescript/src/web/runtime.d.ts +6 -5
  500. package/lib/typescript/src/web/runtime.d.ts.map +1 -1
  501. package/lib/typescript/src/web/shadowRegistry.d.ts +25 -0
  502. package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -0
  503. package/lib/typescript/src/web/state.d.ts +3 -9
  504. package/lib/typescript/src/web/state.d.ts.map +1 -1
  505. package/lib/typescript/src/web/utils/common.d.ts +8 -0
  506. package/lib/typescript/src/web/utils/common.d.ts.map +1 -0
  507. package/lib/typescript/src/web/utils/index.d.ts +3 -0
  508. package/lib/typescript/src/web/utils/index.d.ts.map +1 -0
  509. package/lib/typescript/src/web/utils/unistyle.d.ts +18 -0
  510. package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -0
  511. package/lib/typescript/src/web/{variants/getVariants.d.ts → variants.d.ts} +2 -2
  512. package/lib/typescript/src/web/variants.d.ts.map +1 -0
  513. package/nitrogen/generated/android/c++/JColorScheme.hpp +2 -2
  514. package/nitrogen/generated/android/c++/JFunc_void_UnistylesNativeMiniRuntime.hpp +57 -0
  515. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +69 -0
  516. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +35 -34
  517. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +15 -6
  518. package/nitrogen/generated/android/c++/JOrientation.hpp +2 -2
  519. package/nitrogen/generated/android/c++/JUnistyleDependency.hpp +5 -2
  520. package/nitrogen/generated/android/c++/JUnistylesNativeMiniRuntime.hpp +9 -7
  521. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/ColorScheme.kt +5 -1
  522. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Dimensions.kt +1 -0
  523. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/{Func_void_std__vector_UnistyleDependency_.kt → Func_void_UnistylesNativeMiniRuntime.kt} +6 -5
  524. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.kt +46 -0
  525. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +25 -13
  526. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Insets.kt +1 -0
  527. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Orientation.kt +5 -1
  528. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistyleDependency.kt +6 -1
  529. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +3 -1
  530. package/nitrogen/generated/android/unistyles+autolinking.cmake +13 -1
  531. package/nitrogen/generated/android/unistyles+autolinking.gradle +2 -0
  532. package/nitrogen/generated/android/{UnistylesOnLoad.cpp → unistylesOnLoad.cpp} +6 -4
  533. package/nitrogen/generated/android/{UnistylesOnLoad.hpp → unistylesOnLoad.hpp} +1 -1
  534. package/nitrogen/generated/ios/Unistyles+autolinking.rb +6 -4
  535. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +25 -0
  536. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +73 -38
  537. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +4 -30
  538. package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +8 -8
  539. package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +4 -16
  540. package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +156 -115
  541. package/nitrogen/generated/ios/swift/UnistyleDependency.swift +4 -0
  542. package/nitrogen/generated/ios/swift/UnistylesNativeMiniRuntime.swift +16 -5
  543. package/nitrogen/generated/shared/c++/ColorScheme.hpp +2 -2
  544. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.cpp +2 -2
  545. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +6 -3
  546. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.cpp +0 -1
  547. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +3 -1
  548. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.cpp +1 -0
  549. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +5 -0
  550. package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +3 -0
  551. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.cpp +0 -1
  552. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +3 -1
  553. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.cpp +2 -1
  554. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +10 -4
  555. package/nitrogen/generated/shared/c++/Orientation.hpp +2 -2
  556. package/nitrogen/generated/shared/c++/UnistyleDependency.hpp +2 -1
  557. package/nitrogen/generated/shared/c++/UnistylesCxxMiniRuntime.hpp +10 -9
  558. package/nitrogen/generated/shared/c++/UnistylesNativeMiniRuntime.hpp +9 -8
  559. package/package.json +25 -38
  560. package/plugin/common.js +30 -7
  561. package/plugin/import.js +69 -6
  562. package/plugin/index.js +142 -33
  563. package/plugin/ref.js +0 -200
  564. package/plugin/style.js +130 -9
  565. package/plugin/stylesheet.js +35 -13
  566. package/plugin/variants.js +54 -1
  567. package/src/components/Display.tsx +12 -0
  568. package/src/components/Hide.tsx +12 -0
  569. package/src/components/ScopedTheme.tsx +32 -0
  570. package/src/components/Variants.tsx +29 -0
  571. package/src/components/index.ts +4 -0
  572. package/src/components/native/ActivityIndicator.tsx +4 -0
  573. package/src/components/native/FlatList.tsx +4 -0
  574. package/src/components/native/Image.tsx +4 -0
  575. package/src/components/native/ImageBackground.tsx +4 -0
  576. package/src/components/native/KeyboardAvoidingView.tsx +4 -0
  577. package/src/components/native/Pressable.native.tsx +55 -0
  578. package/src/components/native/Pressable.tsx +98 -0
  579. package/src/components/native/RefreshControl.tsx +4 -0
  580. package/src/components/native/ScrollView.tsx +4 -0
  581. package/src/components/native/SectionList.tsx +4 -0
  582. package/src/components/native/Switch.tsx +4 -0
  583. package/src/components/native/Text.tsx +4 -0
  584. package/src/components/native/TextInput.tsx +4 -0
  585. package/src/components/native/TouchableHighlight.tsx +4 -0
  586. package/src/components/native/TouchableOpacity.tsx +4 -0
  587. package/src/components/native/View.tsx +4 -0
  588. package/src/components/native/VirtualizedList.tsx +4 -0
  589. package/src/core/createUnistylesComponent.tsx +14 -0
  590. package/src/core/createUnistylesElement.tsx +9 -0
  591. package/src/core/createUnistylesImageBackground.tsx +24 -0
  592. package/src/core/index.ts +5 -0
  593. package/src/core/passForwardRef.ts +29 -0
  594. package/src/core/withUnistyles/index.ts +1 -0
  595. package/src/core/withUnistyles/types.ts +7 -0
  596. package/src/core/withUnistyles/useDependencies.ts +93 -0
  597. package/src/core/withUnistyles/withUnistyles.native.tsx +96 -0
  598. package/src/core/withUnistyles/withUnistyles.tsx +90 -0
  599. package/src/hooks/index.ts +1 -0
  600. package/src/hooks/useMedia.native.ts +65 -0
  601. package/src/hooks/useMedia.ts +47 -0
  602. package/src/index.ts +3 -12
  603. package/src/mq.ts +33 -15
  604. package/src/specs/NativePlatform/NativePlatform.nitro.ts +8 -6
  605. package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.ts +0 -1
  606. package/src/specs/NavigtionBar/index.ts +1 -25
  607. package/src/specs/ShadowRegistry/index.ts +26 -12
  608. package/src/specs/ShadowRegistry/types.ts +24 -3
  609. package/src/specs/StatusBar/UnistylesStatusBar.nitro.ts +0 -1
  610. package/src/specs/StatusBar/index.ts +2 -12
  611. package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.ts +4 -1
  612. package/src/specs/StyleSheet/index.ts +7 -3
  613. package/src/specs/TurboUnistyles/NativeTurboUnistyles.ts +1 -2
  614. package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +2 -2
  615. package/src/specs/UnistylesRuntime/index.ts +4 -3
  616. package/src/specs/index.native.ts +27 -0
  617. package/src/specs/index.ts +3 -23
  618. package/src/types/breakpoints.ts +25 -13
  619. package/src/types/common.ts +2 -0
  620. package/src/types/index.ts +2 -2
  621. package/src/types/stylesheet.ts +7 -5
  622. package/src/types/variants.ts +7 -1
  623. package/src/utils.ts +22 -0
  624. package/src/web/convert/index.ts +24 -24
  625. package/src/web/convert/object/boxShadow.ts +55 -0
  626. package/src/web/convert/object/filter.ts +39 -0
  627. package/src/web/convert/object/index.ts +3 -0
  628. package/src/web/convert/object/objectStyle.ts +69 -0
  629. package/src/web/convert/object/transform.ts +24 -0
  630. package/src/web/convert/pseudo.ts +137 -0
  631. package/src/web/convert/shadow/boxShadow.ts +50 -0
  632. package/src/web/convert/shadow/getShadowBreakpoints.ts +34 -0
  633. package/src/web/convert/shadow/index.ts +2 -0
  634. package/src/web/convert/shadow/textShadow.ts +48 -0
  635. package/src/web/convert/style.ts +61 -10
  636. package/src/web/convert/types.ts +8 -1
  637. package/src/web/convert/utils.ts +13 -7
  638. package/src/web/create.ts +22 -88
  639. package/src/web/index.ts +12 -6
  640. package/src/web/listener.ts +65 -0
  641. package/src/web/mock.ts +1 -12
  642. package/src/web/registry.ts +211 -28
  643. package/src/web/runtime.ts +31 -18
  644. package/src/web/shadowRegistry.ts +163 -0
  645. package/src/web/state.ts +52 -87
  646. package/src/web/utils/common.ts +45 -0
  647. package/src/web/utils/index.ts +2 -0
  648. package/src/web/utils/unistyle.ts +93 -0
  649. package/src/web/{variants/getVariants.ts → variants.ts} +2 -2
  650. package/android/src/main/cxx/helpers.cpp +0 -105
  651. package/android/src/main/cxx/helpers.h +0 -16
  652. package/android/src/main/cxx/platform.cpp +0 -170
  653. package/android/src/main/cxx/platform.h +0 -20
  654. package/lib/commonjs/specs/index.web.js +0 -24
  655. package/lib/commonjs/specs/index.web.js.map +0 -1
  656. package/lib/commonjs/web/convert/boxShadow.js.map +0 -1
  657. package/lib/commonjs/web/convert/breakpoint.js +0 -25
  658. package/lib/commonjs/web/convert/breakpoint.js.map +0 -1
  659. package/lib/commonjs/web/convert/shadow.js +0 -68
  660. package/lib/commonjs/web/convert/shadow.js.map +0 -1
  661. package/lib/commonjs/web/convert/textShadow.js.map +0 -1
  662. package/lib/commonjs/web/convert/transform.js +0 -72
  663. package/lib/commonjs/web/convert/transform.js.map +0 -1
  664. package/lib/commonjs/web/listener/index.js +0 -13
  665. package/lib/commonjs/web/listener/index.js.map +0 -1
  666. package/lib/commonjs/web/listener/listener.js +0 -36
  667. package/lib/commonjs/web/listener/listener.js.map +0 -1
  668. package/lib/commonjs/web/mq.js +0 -23
  669. package/lib/commonjs/web/mq.js.map +0 -1
  670. package/lib/commonjs/web/pseudo.js +0 -11
  671. package/lib/commonjs/web/pseudo.js.map +0 -1
  672. package/lib/commonjs/web/utils.js +0 -78
  673. package/lib/commonjs/web/utils.js.map +0 -1
  674. package/lib/commonjs/web/variants/getVariants.js.map +0 -1
  675. package/lib/commonjs/web/variants/index.js +0 -28
  676. package/lib/commonjs/web/variants/index.js.map +0 -1
  677. package/lib/commonjs/web/variants/useVariants.js +0 -75
  678. package/lib/commonjs/web/variants/useVariants.js.map +0 -1
  679. package/lib/module/specs/index.web.js +0 -5
  680. package/lib/module/specs/index.web.js.map +0 -1
  681. package/lib/module/web/convert/boxShadow.js +0 -72
  682. package/lib/module/web/convert/boxShadow.js.map +0 -1
  683. package/lib/module/web/convert/breakpoint.js +0 -20
  684. package/lib/module/web/convert/breakpoint.js.map +0 -1
  685. package/lib/module/web/convert/shadow.js +0 -63
  686. package/lib/module/web/convert/shadow.js.map +0 -1
  687. package/lib/module/web/convert/textShadow.js +0 -68
  688. package/lib/module/web/convert/textShadow.js.map +0 -1
  689. package/lib/module/web/convert/transform.js +0 -67
  690. package/lib/module/web/convert/transform.js.map +0 -1
  691. package/lib/module/web/listener/index.js +0 -4
  692. package/lib/module/web/listener/index.js.map +0 -1
  693. package/lib/module/web/listener/listener.js +0 -31
  694. package/lib/module/web/listener/listener.js.map +0 -1
  695. package/lib/module/web/mq.js +0 -17
  696. package/lib/module/web/mq.js.map +0 -1
  697. package/lib/module/web/pseudo.js +0 -6
  698. package/lib/module/web/pseudo.js.map +0 -1
  699. package/lib/module/web/utils.js +0 -65
  700. package/lib/module/web/utils.js.map +0 -1
  701. package/lib/module/web/variants/getVariants.js.map +0 -1
  702. package/lib/module/web/variants/index.js +0 -5
  703. package/lib/module/web/variants/index.js.map +0 -1
  704. package/lib/module/web/variants/useVariants.js +0 -70
  705. package/lib/module/web/variants/useVariants.js.map +0 -1
  706. package/lib/typescript/example/App.d.ts +0 -4
  707. package/lib/typescript/example/App.d.ts.map +0 -1
  708. package/lib/typescript/example/Typography.d.ts +0 -11
  709. package/lib/typescript/example/Typography.d.ts.map +0 -1
  710. package/lib/typescript/example/unistyles.d.ts +0 -63
  711. package/lib/typescript/example/unistyles.d.ts.map +0 -1
  712. package/lib/typescript/expo-example/App.d.ts +0 -4
  713. package/lib/typescript/expo-example/App.d.ts.map +0 -1
  714. package/lib/typescript/expo-example/unistyles.d.ts +0 -63
  715. package/lib/typescript/expo-example/unistyles.d.ts.map +0 -1
  716. package/lib/typescript/src/specs/index.web.d.ts +0 -4
  717. package/lib/typescript/src/specs/index.web.d.ts.map +0 -1
  718. package/lib/typescript/src/web/convert/boxShadow.d.ts +0 -3
  719. package/lib/typescript/src/web/convert/boxShadow.d.ts.map +0 -1
  720. package/lib/typescript/src/web/convert/breakpoint.d.ts +0 -3
  721. package/lib/typescript/src/web/convert/breakpoint.d.ts.map +0 -1
  722. package/lib/typescript/src/web/convert/shadow.d.ts +0 -2
  723. package/lib/typescript/src/web/convert/shadow.d.ts.map +0 -1
  724. package/lib/typescript/src/web/convert/textShadow.d.ts +0 -3
  725. package/lib/typescript/src/web/convert/textShadow.d.ts.map +0 -1
  726. package/lib/typescript/src/web/convert/transform.d.ts +0 -5
  727. package/lib/typescript/src/web/convert/transform.d.ts.map +0 -1
  728. package/lib/typescript/src/web/listener/index.d.ts +0 -2
  729. package/lib/typescript/src/web/listener/index.d.ts.map +0 -1
  730. package/lib/typescript/src/web/listener/listener.d.ts.map +0 -1
  731. package/lib/typescript/src/web/mq.d.ts +0 -4
  732. package/lib/typescript/src/web/mq.d.ts.map +0 -1
  733. package/lib/typescript/src/web/pseudo.d.ts +0 -4
  734. package/lib/typescript/src/web/pseudo.d.ts.map +0 -1
  735. package/lib/typescript/src/web/utils.d.ts +0 -20
  736. package/lib/typescript/src/web/utils.d.ts.map +0 -1
  737. package/lib/typescript/src/web/variants/getVariants.d.ts.map +0 -1
  738. package/lib/typescript/src/web/variants/index.d.ts +0 -3
  739. package/lib/typescript/src/web/variants/index.d.ts.map +0 -1
  740. package/lib/typescript/src/web/variants/useVariants.d.ts +0 -3
  741. package/lib/typescript/src/web/variants/useVariants.d.ts.map +0 -1
  742. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency_.hpp +0 -60
  743. package/plugin/__tests__/dependencies.spec.js +0 -438
  744. package/plugin/__tests__/ref.spec.js +0 -1170
  745. package/plugin/__tests__/stylesheet.spec.js +0 -489
  746. package/src/specs/index.web.ts +0 -5
  747. package/src/web/convert/boxShadow.ts +0 -72
  748. package/src/web/convert/breakpoint.ts +0 -21
  749. package/src/web/convert/shadow.ts +0 -68
  750. package/src/web/convert/textShadow.ts +0 -69
  751. package/src/web/convert/transform.ts +0 -89
  752. package/src/web/listener/index.ts +0 -1
  753. package/src/web/listener/listener.ts +0 -33
  754. package/src/web/mq.ts +0 -19
  755. package/src/web/pseudo.ts +0 -11
  756. package/src/web/utils.ts +0 -95
  757. package/src/web/variants/index.ts +0 -2
  758. package/src/web/variants/useVariants.ts +0 -79
  759. /package/nitrogen/generated/android/{UnistylesOnLoad.kt → unistylesOnLoad.kt} +0 -0
@@ -1,4 +1,5 @@
1
1
  #include "Parser.h"
2
+ #include "UnistyleWrapper.h"
2
3
 
3
4
  using namespace margelo::nitro::unistyles;
4
5
  using namespace facebook;
@@ -8,19 +9,19 @@ using Variants = std::vector<std::pair<std::string, std::string>>;
8
9
 
9
10
  // called only once while processing StyleSheet.create
10
11
  void parser::Parser::buildUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet) {
11
- jsi::Object unwrappedStyleSheet = this->unwrapStyleSheet(rt, styleSheet);
12
+ jsi::Object unwrappedStyleSheet = this->unwrapStyleSheet(rt, styleSheet, std::nullopt);
12
13
 
13
14
  helpers::enumerateJSIObject(rt, unwrappedStyleSheet, [&](const std::string& styleKey, jsi::Value& propertyValue){
14
15
  helpers::assertThat(rt, propertyValue.isObject(), "Unistyles: Style with name '" + styleKey + "' is not a function or object.");
15
16
 
16
17
  jsi::Object styleValue = propertyValue.asObject(rt);
17
18
 
18
-
19
19
  if (styleValue.isFunction(rt)) {
20
20
  styleSheet->unistyles[styleKey] = std::make_shared<UnistyleDynamicFunction>(
21
21
  UnistyleType::DynamicFunction,
22
22
  styleKey,
23
- styleValue
23
+ styleValue,
24
+ styleSheet
24
25
  );
25
26
 
26
27
  return;
@@ -29,12 +30,92 @@ void parser::Parser::buildUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet
29
30
  styleSheet->unistyles[styleKey] = std::make_shared<Unistyle>(
30
31
  UnistyleType::Object,
31
32
  styleKey,
32
- styleValue
33
+ styleValue,
34
+ styleSheet
33
35
  );
34
36
  });
35
37
  }
36
38
 
37
- jsi::Object parser::Parser::unwrapStyleSheet(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet) {
39
+ jsi::Value parser::Parser::getParsedStyleSheetForScopedTheme(jsi::Runtime& rt, core::Unistyle::Shared unistyle, std::string& scopedTheme) {
40
+ // for static stylesheets and exotic styles we don't need to do anything
41
+ if (unistyle->parent == nullptr || unistyle->parent->type == StyleSheetType::Static) {
42
+ return jsi::Value::undefined();
43
+ }
44
+
45
+ auto& state = core::UnistylesRegistry::get().getState(rt);
46
+ auto jsTheme = state.getJSThemeByName(scopedTheme);
47
+
48
+ if (unistyle->parent->type == StyleSheetType::Themable) {
49
+ return unistyle->parent->rawValue
50
+ .asFunction(rt)
51
+ .call(rt, std::move(jsTheme))
52
+ .asObject(rt);
53
+ }
54
+
55
+ auto miniRuntime = this->_unistylesRuntime->getMiniRuntimeAsValue(rt, std::nullopt);
56
+
57
+ return unistyle->parent->rawValue
58
+ .asFunction(rt)
59
+ .call(rt, std::move(jsTheme), std::move(miniRuntime))
60
+ .asObject(rt);
61
+ }
62
+
63
+ void parser::Parser::rebuildUnistyleWithScopedTheme(jsi::Runtime& rt, jsi::Value& jsScopedTheme, std::shared_ptr<core::UnistyleData> unistyleData) {
64
+ auto parsedStyleSheet = jsScopedTheme.isUndefined()
65
+ ? this->getParsedStyleSheetForScopedTheme(rt, unistyleData->unistyle, unistyleData->scopedTheme.value())
66
+ : jsScopedTheme.asObject(rt);
67
+
68
+ if (parsedStyleSheet.isUndefined()) {
69
+ return;
70
+ }
71
+
72
+ // get target style
73
+ auto targetStyle = parsedStyleSheet.asObject(rt).getProperty(rt, unistyleData->unistyle->styleKey.c_str()).asObject(rt);
74
+
75
+ // for object we just need to parse it
76
+ if (unistyleData->unistyle->type == UnistyleType::Object) {
77
+ // we need to temporarly swap rawValue to enforce correct parings
78
+ auto sharedRawValue = std::move(unistyleData->unistyle->rawValue);
79
+
80
+ unistyleData->unistyle->rawValue = std::move(targetStyle);
81
+ unistyleData->parsedStyle = this->parseFirstLevel(rt, unistyleData->unistyle, unistyleData->variants);
82
+ unistyleData->unistyle->rawValue = std::move(sharedRawValue);
83
+
84
+ return;
85
+ }
86
+
87
+ // for functions we need to call them with memoized arguments
88
+ auto unistyleFn = std::dynamic_pointer_cast<UnistyleDynamicFunction>(unistyleData->unistyle);
89
+
90
+ // convert arguments to jsi::Value
91
+ std::vector<jsi::Value> args{};
92
+ auto arguments = unistyleData->dynamicFunctionMetadata.value();
93
+
94
+ args.reserve(arguments.size());
95
+
96
+ for (int i = 0; i < arguments.size(); i++) {
97
+ folly::dynamic& arg = arguments.at(i);
98
+
99
+ args.emplace_back(jsi::valueFromDynamic(rt, arg));
100
+ }
101
+
102
+ const jsi::Value *argStart = args.data();
103
+
104
+ // we need to temporarly swap unprocessed value to enforce correct parings
105
+ auto sharedUnprocessedValue = std::move(unistyleFn->unprocessedValue);
106
+
107
+ // call cached function with memoized arguments
108
+ auto functionResult = targetStyle
109
+ .asFunction(rt)
110
+ .call(rt, argStart, arguments.size())
111
+ .asObject(rt);
112
+
113
+ unistyleFn->unprocessedValue = std::move(functionResult);
114
+ unistyleData->parsedStyle = this->parseFirstLevel(rt, unistyleFn, unistyleData->variants);
115
+ unistyleFn->unprocessedValue = std::move(sharedUnprocessedValue);
116
+ }
117
+
118
+ jsi::Object parser::Parser::unwrapStyleSheet(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, std::optional<UnistylesNativeMiniRuntime> maybeMiniRuntime) {
38
119
  // firstly we need to get object representation of user's StyleSheet
39
120
  // StyleSheet can be a function or an object
40
121
 
@@ -45,7 +126,7 @@ jsi::Object parser::Parser::unwrapStyleSheet(jsi::Runtime& rt, std::shared_ptr<S
45
126
 
46
127
  // StyleSheet is a function
47
128
  auto& state = core::UnistylesRegistry::get().getState(rt);
48
- auto theme = state.getJSTheme();
129
+ auto theme = state.getCurrentJSTheme();
49
130
 
50
131
  if (styleSheet->type == StyleSheetType::Themable) {
51
132
  return styleSheet->rawValue
@@ -56,7 +137,7 @@ jsi::Object parser::Parser::unwrapStyleSheet(jsi::Runtime& rt, std::shared_ptr<S
56
137
 
57
138
  // stylesheet also has a mini runtime dependency
58
139
  // StyleSheetType::ThemableWithMiniRuntime
59
- auto miniRuntime = this->_unistylesRuntime->getMiniRuntimeAsValue(rt);
140
+ auto miniRuntime = this->_unistylesRuntime->getMiniRuntimeAsValue(rt, maybeMiniRuntime);
60
141
 
61
142
  return styleSheet->rawValue
62
143
  .asFunction(rt)
@@ -85,35 +166,156 @@ void parser::Parser::parseUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet
85
166
  }
86
167
 
87
168
  // rebuild all unistyles in StyleSheet that depends on variants
88
- void parser::Parser::rebuildUnistylesWithVariants(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Variants& variants) {
89
- for (const auto& [_, unistyle] : styleSheet->unistyles) {
90
- if (!unistyle->dependsOn(UnistyleDependency::VARIANTS)) {
91
- continue;
92
- }
169
+ void parser::Parser::rebuildUnistyleWithVariants(jsi::Runtime& rt, std::shared_ptr<core::UnistyleData> unistyleData) {
170
+ if (unistyleData->unistyle->styleKey == helpers::EXOTIC_STYLE_KEY) {
171
+ return;
172
+ }
173
+
174
+ if (unistyleData->unistyle->type == UnistyleType::Object) {
175
+ unistyleData->parsedStyle = this->parseFirstLevel(rt, unistyleData->unistyle, unistyleData->variants);
176
+
177
+ return;
178
+ }
179
+
180
+ // for functions we need to call them with memoized arguments
181
+ auto unistyleFn = std::dynamic_pointer_cast<UnistyleDynamicFunction>(unistyleData->unistyle);
182
+
183
+ // convert arguments to jsi::Value
184
+ std::vector<jsi::Value> args{};
185
+ auto arguments = unistyleData->dynamicFunctionMetadata.value();
186
+
187
+ args.reserve(arguments.size());
93
188
 
94
- // todo skip dynamic functions
95
- this->rebuildUnistyle(rt, styleSheet, unistyle, variants, std::nullopt);
189
+ for (int i = 0; i < arguments.size(); i++) {
190
+ folly::dynamic& arg = arguments.at(i);
191
+
192
+ args.emplace_back(jsi::valueFromDynamic(rt, arg));
96
193
  }
194
+
195
+ const jsi::Value *argStart = args.data();
196
+
197
+ // we need to temporarly swap unprocessed value to enforce correct parings
198
+ auto sharedUnprocessedValue = std::move(unistyleFn->unprocessedValue);
199
+
200
+ // call cached function with memoized arguments
201
+ auto functionResult = unistyleFn->rawValue
202
+ .asFunction(rt)
203
+ .call(rt, argStart, arguments.size())
204
+ .asObject(rt);
205
+
206
+ unistyleFn->unprocessedValue = std::move(functionResult);
207
+ unistyleData->parsedStyle = this->parseFirstLevel(rt, unistyleFn, unistyleData->variants);
208
+ unistyleFn->unprocessedValue = std::move(sharedUnprocessedValue);
97
209
  }
98
210
 
99
211
  // rebuild all unistyles that are affected by platform event
100
- void parser::Parser::rebuildUnistylesInDependencyMap(jsi::Runtime& rt, DependencyMap& dependencyMap) {
101
- for (auto& [styleSheet, map] : dependencyMap) {
102
- jsi::Object unwrappedStyleSheet = this->unwrapStyleSheet(rt, styleSheet);
212
+ void parser::Parser::rebuildUnistylesInDependencyMap(jsi::Runtime& rt, DependencyMap& dependencyMap, std::vector<std::shared_ptr<core::StyleSheet>>& styleSheets, std::optional<UnistylesNativeMiniRuntime> maybeMiniRuntime) {
213
+ std::unordered_map<std::shared_ptr<StyleSheet>, jsi::Value> parsedStyleSheetsWithDefaultTheme{};
214
+ std::unordered_map<std::string, std::unordered_map<std::shared_ptr<StyleSheet>, jsi::Value>> parsedStyleSheetsWithScopedTheme{};
215
+ std::unordered_map<std::shared_ptr<core::Unistyle>, bool> parsedUnistyles{};
216
+
217
+ // parse all stylesheets that depends on changes
218
+ for (auto styleSheet : styleSheets) {
219
+ parsedStyleSheetsWithDefaultTheme.emplace(styleSheet, this->unwrapStyleSheet(rt, styleSheet, maybeMiniRuntime));
220
+ }
103
221
 
104
- for (auto& [shadowNode, unistyles] : map) {
105
- for (auto& unistyleData : unistyles) {
106
- auto& unistyle = unistyleData->unistyle;
222
+ // then parse all visible Unistyles managed by Unistyle
223
+ for (auto& [shadowNode, unistyles] : dependencyMap) {
224
+ auto styleSheet = unistyles.begin()->get()->unistyle->parent;
225
+
226
+ // stylesheet may be optional for exotic unistyles
227
+ if (styleSheet != nullptr && !parsedStyleSheetsWithDefaultTheme.contains(styleSheet)) {
228
+ parsedStyleSheetsWithDefaultTheme.emplace(styleSheet, this->unwrapStyleSheet(rt, styleSheet, maybeMiniRuntime));
229
+ }
107
230
 
108
- // StyleSheet might have styles that are not affected
109
- if (!unwrappedStyleSheet.hasProperty(rt, unistyle->styleKey.c_str())) {
110
- continue;
231
+ for (auto& unistyleData : unistyles) {
232
+ auto& unistyle = unistyleData->unistyle;
233
+
234
+ // for RN styles or inline styles, compute styles only once
235
+ if (unistyle->styleKey == helpers::EXOTIC_STYLE_KEY) {
236
+ if (!unistyleData->parsedStyle.has_value()) {
237
+ unistyleData->parsedStyle = jsi::Value(rt, unistyle->rawValue).asObject(rt);
238
+
239
+ if (!parsedUnistyles.contains(unistyle)) {
240
+ parsedUnistyles.emplace(unistyle, true);
241
+ }
111
242
  }
112
243
 
113
- unistyle->rawValue = unwrappedStyleSheet.getProperty(rt, unistyle->styleKey.c_str()).asObject(rt);
114
- this->rebuildUnistyle(rt, styleSheet, unistyle, unistyleData->variants, unistyleData->dynamicFunctionMetadata);
244
+ continue;
245
+ }
246
+
247
+ // reference Unistyles StyleSheet as we may mix them for one style
248
+ auto unistyleStyleSheet = unistyle->parent;
249
+
250
+ // we may hit now other StyleSheets that are referenced from affected nodes
251
+ if (unistyleStyleSheet != nullptr && !parsedStyleSheetsWithDefaultTheme.contains(unistyleStyleSheet)) {
252
+ parsedStyleSheetsWithDefaultTheme.emplace(unistyleStyleSheet, this->unwrapStyleSheet(rt, unistyleStyleSheet, maybeMiniRuntime));
253
+ }
254
+
255
+ // StyleSheet might have styles that are not affected
256
+ if (!parsedStyleSheetsWithDefaultTheme[unistyleStyleSheet].asObject(rt).hasProperty(rt, unistyle->styleKey.c_str())) {
257
+ continue;
258
+ }
259
+
260
+ // for scoped themes we need to parse unistyle exclusively
261
+ if (unistyleData->scopedTheme.has_value()) {
262
+ std::vector<folly::dynamic> arguments = {};
263
+
264
+ if (unistyleData->dynamicFunctionMetadata.has_value()) {
265
+ arguments = unistyleData->dynamicFunctionMetadata.value();
266
+ }
267
+
268
+ auto parsedStyleSheet = jsi::Value::undefined();
269
+ auto scopedThemeName = unistyleData->scopedTheme.value();
270
+
271
+ // check if we have theme in cache
272
+ if (parsedStyleSheetsWithScopedTheme.contains(scopedThemeName)) {
273
+ if (parsedStyleSheetsWithScopedTheme[scopedThemeName].contains(unistyle->parent)) {
274
+ parsedStyleSheet = jsi::Value(rt, parsedStyleSheetsWithScopedTheme[scopedThemeName][unistyle->parent]);
275
+ }
276
+ }
277
+
278
+ // if not, let's build it
279
+ if (parsedStyleSheet.isUndefined()) {
280
+ parsedStyleSheet = this->getParsedStyleSheetForScopedTheme(rt, unistyle, unistyleData->scopedTheme.value());
281
+
282
+ if (!parsedStyleSheetsWithScopedTheme.contains(scopedThemeName)) {
283
+ parsedStyleSheetsWithScopedTheme.emplace(
284
+ scopedThemeName,
285
+ std::unordered_map<std::shared_ptr<StyleSheet>, jsi::Value>{}
286
+ );
287
+ }
288
+
289
+ parsedStyleSheetsWithScopedTheme[scopedThemeName].emplace(
290
+ unistyle->parent,
291
+ jsi::Value(rt, parsedStyleSheet)
292
+ );
293
+ }
294
+
295
+ this->rebuildUnistyleWithScopedTheme(
296
+ rt,
297
+ parsedStyleSheet,
298
+ unistyleData
299
+ );
300
+ } else {
301
+ unistyle->rawValue = parsedStyleSheetsWithDefaultTheme[unistyleStyleSheet].asObject(rt).getProperty(rt, unistyle->styleKey.c_str()).asObject(rt);
302
+ this->rebuildUnistyle(rt, unistyleStyleSheet, unistyle, unistyleData->variants, unistyleData->dynamicFunctionMetadata);
115
303
  unistyleData->parsedStyle = jsi::Value(rt, unistyle->parsedStyle.value()).asObject(rt);
116
304
  }
305
+
306
+ if (!parsedUnistyles.contains(unistyle)) {
307
+ parsedUnistyles.emplace(unistyle, true);
308
+ }
309
+ }
310
+ }
311
+
312
+ // parse whatever left in StyleSheets to be later accessible
313
+ // for createUnistylesComponent
314
+ for (auto styleSheet : styleSheets) {
315
+ for (auto& [_, unistyle] : styleSheet->unistyles) {
316
+ if (!parsedUnistyles.contains(unistyle)) {
317
+ unistyle->rawValue = parsedStyleSheetsWithDefaultTheme[styleSheet].asObject(rt).getProperty(rt, unistyle->styleKey.c_str()).asObject(rt);
318
+ }
117
319
  }
118
320
  }
119
321
  }
@@ -146,7 +348,10 @@ void parser::Parser::rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleShee
146
348
  const jsi::Value *argStart = args.data();
147
349
 
148
350
  // call cached function with memoized arguments
149
- auto functionResult = unistyleFn->proxiedFunction.value().callAsConstructor(rt, argStart, dynamicFunctionMetadata.size()).asObject(rt);
351
+ auto functionResult = unistyleFn->rawValue
352
+ .asFunction(rt)
353
+ .call(rt, argStart, dynamicFunctionMetadata.size())
354
+ .asObject(rt);
150
355
 
151
356
  unistyleFn->unprocessedValue = std::move(functionResult);
152
357
  unistyleFn->parsedStyle = this->parseFirstLevel(rt, unistyleFn, variants);
@@ -154,27 +359,19 @@ void parser::Parser::rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleShee
154
359
  }
155
360
 
156
361
  // convert dependency map to shadow tree updates
157
- shadow::ShadowLeafUpdates parser::Parser::dependencyMapToShadowLeafUpdates(core::DependencyMap& dependencyMap) {
362
+ void parser::Parser::rebuildShadowLeafUpdates(jsi::Runtime& rt, core::DependencyMap& dependencyMap) {
158
363
  shadow::ShadowLeafUpdates updates;
159
- auto& rt = this->_unistylesRuntime->getRuntime();
160
-
161
- for (const auto& [styleSheet, map] : dependencyMap) {
162
- for (const auto& [shadowNode, unistyles] : map) {
163
- for (const auto& unistyleData : unistyles) {
164
- auto rawProps = this->parseStylesToShadowTreeStyles(rt, unistyleData->parsedStyle.value());
165
-
166
- if (updates.contains(shadowNode)) {
167
- updates[shadowNode].emplace_back(std::move(rawProps));
364
+ auto& registry = core::UnistylesRegistry::get();
168
365
 
169
- continue;
170
- }
366
+ for (const auto& [shadowNode, unistyles] : dependencyMap) {
367
+ // this step is required to parse string colors eg. #000000 to int representation
368
+ auto rawProps = this->parseStylesToShadowTreeStyles(rt, unistyles);
171
369
 
172
- updates.emplace(shadowNode, std::vector<RawProps>{std::move(rawProps)});
173
- }
174
- }
370
+ updates.emplace(shadowNode, std::move(rawProps));
175
371
  }
176
372
 
177
- return updates;
373
+ registry.trafficController.setUpdates(updates);
374
+ registry.trafficController.resumeUnistylesTraffic();
178
375
  }
179
376
 
180
377
  // first level of StyleSheet, we can expect here different properties than on second level
@@ -238,6 +435,18 @@ jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared u
238
435
  return;
239
436
  }
240
437
 
438
+ if (propertyName == "boxShadow" && propertyValueObject.isArray(rt)) {
439
+ parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), parseBoxShadow(rt, unistyle, propertyValueObject));
440
+
441
+ return;
442
+ }
443
+
444
+ if (propertyName == "filter" && propertyValueObject.isArray(rt)) {
445
+ parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), parseFilters(rt, unistyle, propertyValueObject));
446
+
447
+ return;
448
+ }
449
+
241
450
  if (propertyName == "fontVariant" && propertyValueObject.isArray(rt)) {
242
451
  parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), propertyValue);
243
452
 
@@ -262,7 +471,7 @@ jsi::Object parser::Parser::parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared u
262
471
  parsedStyle.setProperty(rt, jsi::PropNameID::forUtf8(rt, propertyName), this->parseSecondLevel(rt, unistyle, valueFromBreakpoint));
263
472
  });
264
473
 
265
- if (shouldParseVariants && variants.has_value() && !variants.value().empty()) {
474
+ if (shouldParseVariants && variants.has_value()) {
266
475
  auto propertyValueObject = style.getProperty(rt, "variants").asObject(rt);
267
476
  auto parsedVariant = this->parseVariants(rt, unistyle, propertyValueObject, variants.value());
268
477
 
@@ -288,31 +497,49 @@ jsi::Function parser::Parser::createDynamicFunctionProxy(jsi::Runtime& rt, Unist
288
497
  jsi::PropNameID::forUtf8(rt, unistyle->styleKey),
289
498
  1,
290
499
  [this, unistylesRuntime, unistyle](jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
291
- auto thisObject = thisVal.asObject(rt);
500
+ auto thisObject = thisVal.isObject()
501
+ ? thisVal.asObject(rt)
502
+ : jsi::Object(rt);
292
503
  auto parser = parser::Parser(unistylesRuntime);
293
-
294
504
  // call user function
295
505
  auto result = unistyle->rawValue.asFunction(rt).call(rt, args, count);
296
506
 
297
507
  // memoize metadata to call it later
298
508
  auto unistyleFn = std::dynamic_pointer_cast<UnistyleDynamicFunction>(unistyle);
299
- jsi::Array arguments = jsi::Array(rt, count);
300
-
301
- for (size_t i = 0; i < count; i++) {
302
- arguments.setValueAtIndex(rt, i, args[i]);
303
- }
509
+ auto& registry = core::UnistylesRegistry::get();
304
510
 
305
511
  unistyleFn->unprocessedValue = jsi::Value(rt, result).asObject(rt);
306
512
 
307
- // todo pass here variants
308
- unistyleFn->parsedStyle = this->parseFirstLevel(rt, unistyleFn, std::nullopt);
513
+ jsi::Value rawVariants = thisObject.hasProperty(rt, helpers::STYLE_VARIANTS.c_str())
514
+ ? thisObject.getProperty(rt, helpers::STYLE_VARIANTS.c_str())
515
+ : jsi::Value::undefined();
516
+ std::optional<Variants> variants = rawVariants.isUndefined()
517
+ ? registry.getScopedVariants()
518
+ : std::optional<Variants>(helpers::variantsToPairs(rt, rawVariants.asObject(rt)));
519
+
520
+ unistyleFn->parsedStyle = this->parseFirstLevel(rt, unistyleFn, variants);
309
521
  unistyleFn->seal();
310
522
 
311
- return jsi::Value(rt, unistyleFn->parsedStyle.value());
523
+ jsi::Object style = jsi::Value(rt, unistyleFn->parsedStyle.value()).asObject(rt);
524
+
525
+ // include dependencies for createUnistylesComponent
526
+ style.setProperty(rt, "__proto__", generateUnistylesPrototype(rt, unistylesRuntime, unistyle, variants, helpers::functionArgumentsToArray(rt, args, count)));
527
+
528
+ jsi::Object secrets = jsi::Object(rt);
529
+
530
+ secrets.setProperty(rt, helpers::ARGUMENTS.c_str(), helpers::functionArgumentsToArray(rt, args, count));
531
+
532
+ helpers::defineHiddenProperty(rt, style, helpers::SECRETS.c_str(), secrets);
533
+
534
+ auto wrappedUnistyle = std::make_shared<UnistyleWrapper>(unistyle);
535
+
536
+ style.setNativeState(rt, std::move(wrappedUnistyle));
537
+
538
+ return style;
312
539
  });
313
540
  }
314
541
 
315
- // function convert babel generated dependencies to C++ dependencies
542
+ // function converts babel generated dependencies to C++ dependencies
316
543
  std::vector<UnistyleDependency> parser::Parser::parseDependencies(jsi::Runtime &rt, jsi::Object&& dependencies) {
317
544
  helpers::assertThat(rt, dependencies.isArray(rt), "Unistyles: Babel transform is invalid - unexpected type for dependencies.");
318
545
 
@@ -331,10 +558,6 @@ std::vector<UnistyleDependency> parser::Parser::parseDependencies(jsi::Runtime &
331
558
 
332
559
  // eg. [{ scale: 2 }, { translateX: 100 }]
333
560
  jsi::Value parser::Parser::parseTransforms(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj) {
334
- if (!obj.isArray(rt)) {
335
- return jsi::Value::undefined();
336
- }
337
-
338
561
  std::vector<jsi::Value> parsedTransforms{};
339
562
 
340
563
  parsedTransforms.reserve(2);
@@ -364,6 +587,67 @@ jsi::Value parser::Parser::parseTransforms(jsi::Runtime& rt, Unistyle::Shared un
364
587
  return result;
365
588
  }
366
589
 
590
+ // eg [{offsetX: 5, offsetY: 5, blurRadius: 5, spreadDistance: 0, color: ‘rgba(255, 0, 0, 0.5)’}]
591
+ jsi::Value parser::Parser::parseBoxShadow(jsi::Runtime &rt, Unistyle::Shared unistyle, jsi::Object &obj) {
592
+ std::vector<jsi::Value> parsedBoxShadows{};
593
+
594
+ parsedBoxShadows.reserve(2);
595
+
596
+ helpers::iterateJSIArray(rt, obj.asArray(rt), [&](size_t i, jsi::Value& value){
597
+ if (!value.isObject()) {
598
+ return;
599
+ }
600
+
601
+ auto parsedResult = this->parseSecondLevel(rt, unistyle, value);
602
+
603
+ parsedBoxShadows.emplace_back(std::move(parsedResult));
604
+ });
605
+
606
+ // create jsi::Array result with correct box shadows
607
+ jsi::Array result = jsi::Array(rt, parsedBoxShadows.size());
608
+
609
+ for (size_t i = 0; i < parsedBoxShadows.size(); i++) {
610
+ result.setValueAtIndex(rt, i, parsedBoxShadows[i]);
611
+ }
612
+
613
+ return result;
614
+ }
615
+
616
+ // eg. [{ brightness: 0.5 }, { opacity: 0.25 }]
617
+ jsi::Value parser::Parser::parseFilters(jsi::Runtime &rt, Unistyle::Shared unistyle, jsi::Object &obj) {
618
+ std::vector<jsi::Value> parsedFilters{};
619
+
620
+ parsedFilters.reserve(2);
621
+
622
+ helpers::iterateJSIArray(rt, obj.asArray(rt), [&](size_t i, jsi::Value& value){
623
+ if (!value.isObject()) {
624
+ return;
625
+ }
626
+
627
+ auto parsedResult = this->parseSecondLevel(rt, unistyle, value);
628
+
629
+ // take only one filter per object
630
+ jsi::Array propertyNames = parsedResult.asObject(rt).getPropertyNames(rt);
631
+ size_t length = propertyNames.size(rt);
632
+
633
+ // ignore no filters
634
+ if (length == 0) {
635
+ return;
636
+ }
637
+
638
+ parsedFilters.emplace_back(std::move(parsedResult));
639
+ });
640
+
641
+ // create jsi::Array result with correct filters
642
+ jsi::Array result = jsi::Array(rt, parsedFilters.size());
643
+
644
+ for (size_t i = 0; i < parsedFilters.size(); i++) {
645
+ result.setValueAtIndex(rt, i, parsedFilters[i]);
646
+ }
647
+
648
+ return result;
649
+ }
650
+
367
651
  // find value based on breakpoints and mq
368
652
  jsi::Value parser::Parser::getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj) {
369
653
  auto& registry = core::UnistylesRegistry::get();
@@ -479,8 +763,8 @@ jsi::Value parser::Parser::getStylesForVariant(jsi::Runtime& rt, const std::stri
479
763
  : "default";
480
764
  auto hasKey = groupValue.hasProperty(rt, selectedVariantKey);
481
765
 
482
- if (hasKey && !selectedVariant.has_value()) {
483
- // add 'default' selection to variants map
766
+ if (!hasKey || !selectedVariant.has_value()) {
767
+ // for no key, add 'default' selection to variants map
484
768
  variants.emplace_back(groupName, selectedVariantKey);
485
769
  }
486
770
 
@@ -518,7 +802,7 @@ jsi::Object parser::Parser::parseCompoundVariants(jsi::Runtime& rt, Unistyle::Sh
518
802
  return parsedCompoundVariants;
519
803
  }
520
804
 
521
- // check every condition in compound variants, support boolean variants
805
+ // check every condition in compound variants, supports boolean variants
522
806
  bool parser::Parser::shouldApplyCompoundVariants(jsi::Runtime& rt, const Variants& variants, jsi::Object& compoundVariant) {
523
807
  if (variants.empty()) {
524
808
  return false;
@@ -535,7 +819,9 @@ bool parser::Parser::shouldApplyCompoundVariants(jsi::Runtime& rt, const Variant
535
819
  auto property = compoundVariant.getProperty(rt, variantKey.c_str());
536
820
  auto propertyName = property.isBool()
537
821
  ? (property.asBool() ? "true" : "false")
538
- : property.asString(rt).utf8(rt);
822
+ : property.isString()
823
+ ? property.asString(rt).utf8(rt)
824
+ : "";
539
825
 
540
826
  if (propertyName != variantValue) {
541
827
  return false;
@@ -613,20 +899,27 @@ jsi::Value parser::Parser::parseSecondLevel(jsi::Runtime &rt, Unistyle::Shared u
613
899
  return parsedStyle;
614
900
  }
615
901
 
616
- // convert jsi::Object to RawValue with int colors
617
- RawProps parser::Parser::parseStylesToShadowTreeStyles(jsi::Runtime& rt, const jsi::Object& styles) {
902
+ // convert unistyles to folly with int colors
903
+ folly::dynamic parser::Parser::parseStylesToShadowTreeStyles(jsi::Runtime& rt, const std::vector<std::shared_ptr<UnistyleData>>& unistyles) {
618
904
  jsi::Object convertedStyles = jsi::Object(rt);
619
905
  auto& state = core::UnistylesRegistry::get().getState(rt);
620
906
 
621
- helpers::enumerateJSIObject(rt, styles, [&](const std::string& propertyName, jsi::Value& propertyValue){
622
- if (this->isColor(propertyName)) {
623
- return convertedStyles.setProperty(rt, propertyName.c_str(), jsi::Value(state.parseColor(propertyValue)));
907
+ for (const auto& unistyleData : unistyles) {
908
+ // this can happen for exotic stylesheets
909
+ if (!unistyleData->parsedStyle.has_value()) {
910
+ return nullptr;
624
911
  }
625
912
 
626
- convertedStyles.setProperty(rt, propertyName.c_str(), propertyValue);
627
- });
913
+ helpers::enumerateJSIObject(rt, unistyleData->parsedStyle.value(), [&](const std::string& propertyName, jsi::Value& propertyValue){
914
+ if (this->isColor(propertyName)) {
915
+ return convertedStyles.setProperty(rt, propertyName.c_str(), jsi::Value(state.parseColor(propertyValue)));
916
+ }
917
+
918
+ convertedStyles.setProperty(rt, propertyName.c_str(), propertyValue);
919
+ });
920
+ }
628
921
 
629
- return RawProps(rt, std::move(convertedStyles));
922
+ return jsi::dynamicFromValue(rt, std::move(convertedStyles));
630
923
  }
631
924
 
632
925
  // check is styleKey contains color
@@ -23,24 +23,28 @@ struct Parser {
23
23
 
24
24
  void buildUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet);
25
25
  void parseUnistyles(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet);
26
- void rebuildUnistylesWithVariants(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Variants& variants);
27
- void rebuildUnistylesInDependencyMap(jsi::Runtime& rt, core::DependencyMap& dependencyMap);
28
- shadow::ShadowLeafUpdates dependencyMapToShadowLeafUpdates(core::DependencyMap& dependencyMap);
26
+ void rebuildUnistyleWithVariants(jsi::Runtime& rt, std::shared_ptr<core::UnistyleData> unistyleData);
27
+ void rebuildUnistylesInDependencyMap(jsi::Runtime& rt, core::DependencyMap& dependencyMap, std::vector<std::shared_ptr<core::StyleSheet>>& styleSheets, std::optional<UnistylesNativeMiniRuntime> maybeMiniRuntime);
28
+ void rebuildShadowLeafUpdates(jsi::Runtime& rt, core::DependencyMap& dependencyMap);
29
+ folly::dynamic parseStylesToShadowTreeStyles(jsi::Runtime& rt, const std::vector<std::shared_ptr<UnistyleData>>& unistyles);
30
+ void rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Unistyle::Shared unistyle, const Variants& variants, std::optional<std::vector<folly::dynamic>>);
31
+ void rebuildUnistyleWithScopedTheme(jsi::Runtime& rt, jsi::Value& jsScopedTheme, std::shared_ptr<core::UnistyleData> unistyleData);
32
+ jsi::Value getParsedStyleSheetForScopedTheme(jsi::Runtime& rt, core::Unistyle::Shared unistyle, std::string& scopedTheme);
29
33
 
30
34
  private:
31
- void rebuildUnistyle(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, Unistyle::Shared unistyle, const Variants& variants, std::optional<std::vector<folly::dynamic>>);
32
- jsi::Object unwrapStyleSheet(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet);
35
+ jsi::Object unwrapStyleSheet(jsi::Runtime& rt, std::shared_ptr<StyleSheet> styleSheet, std::optional<UnistylesNativeMiniRuntime>);
33
36
  jsi::Object parseFirstLevel(jsi::Runtime& rt, Unistyle::Shared unistyle, std::optional<Variants> variants);
34
37
  jsi::Value parseSecondLevel(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Value& nestedObject);
35
38
  jsi::Function createDynamicFunctionProxy(jsi::Runtime& rt, Unistyle::Shared unistyle);
36
39
  std::vector<UnistyleDependency> parseDependencies(jsi::Runtime &rt, jsi::Object&& dependencies);
37
40
  jsi::Value parseTransforms(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj);
41
+ jsi::Value parseBoxShadow(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj);
42
+ jsi::Value parseFilters(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj);
38
43
  jsi::Value getValueFromBreakpoints(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj);
39
44
  jsi::Object parseVariants(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj, Variants& variants);
40
45
  jsi::Value getStylesForVariant(jsi::Runtime& rt, const std::string groupName, jsi::Object&& groupValue, std::optional<std::string> selectedVariant, Variants& variants);
41
46
  jsi::Object parseCompoundVariants(jsi::Runtime& rt, Unistyle::Shared unistyle, jsi::Object& obj, Variants& variants);
42
47
  bool shouldApplyCompoundVariants(jsi::Runtime& rt, const Variants& variants, jsi::Object& compoundVariant);
43
- RawProps parseStylesToShadowTreeStyles(jsi::Runtime& rt, const jsi::Object& parsedStyles);
44
48
  bool isColor(const std::string& propertyName);
45
49
 
46
50
  std::shared_ptr<HybridUnistylesRuntime> _unistylesRuntime;
@@ -1,6 +1,7 @@
1
1
  #pragma once
2
2
 
3
3
  #include <jsi/jsi.h>
4
+ #include <folly/dynamic.h>
4
5
  #include <react/renderer/uimanager/UIManager.h>
5
6
 
6
7
  namespace margelo::nitro::unistyles::shadow {
@@ -8,6 +9,7 @@ namespace margelo::nitro::unistyles::shadow {
8
9
  using namespace facebook;
9
10
  using namespace facebook::react;
10
11
 
11
- using ShadowLeafUpdates = std::unordered_map<const ShadowNodeFamily*, std::vector<RawProps>>;
12
+ // translates Unistyles changes to unified shadow tree changes
13
+ using ShadowLeafUpdates = std::unordered_map<const ShadowNodeFamily*, folly::dynamic>;
12
14
 
13
15
  }