react-native-unistyles 3.0.0-beta.3 → 3.0.0-beta.5

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 (496) hide show
  1. package/README.md +6 -3
  2. package/android/src/main/cxx/NativeUnistylesModule.cpp +1 -1
  3. package/android/src/main/cxx/NativeUnistylesModule.h +1 -1
  4. package/components/native/ActivityIndicator/package.json +2 -1
  5. package/components/native/FlatList/package.json +2 -1
  6. package/components/native/Image/package.json +2 -1
  7. package/components/native/ImageBackground/package.json +2 -1
  8. package/components/native/KeyboardAvoidingView/package.json +2 -1
  9. package/components/native/Pressable/package.json +1 -1
  10. package/components/native/RefreshControl/package.json +2 -1
  11. package/components/native/ScrollView/package.json +2 -1
  12. package/components/native/SectionList/package.json +2 -1
  13. package/components/native/Switch/package.json +2 -1
  14. package/components/native/Text/package.json +2 -1
  15. package/components/native/TextInput/package.json +2 -1
  16. package/components/native/TouchableHighlight/package.json +2 -1
  17. package/components/native/TouchableOpacity/package.json +2 -1
  18. package/components/native/View/package.json +2 -1
  19. package/components/native/VirtualizedList/package.json +2 -1
  20. package/cxx/common/Constants.h +4 -4
  21. package/cxx/common/Helpers.h +1 -1
  22. package/cxx/core/HashGenerator.cpp +23 -0
  23. package/cxx/core/HashGenerator.h +13 -0
  24. package/cxx/core/HostUnistyle.cpp +83 -0
  25. package/cxx/core/HostUnistyle.h +27 -0
  26. package/cxx/core/RNStyle.h +18 -0
  27. package/cxx/core/Unistyle.h +9 -4
  28. package/cxx/core/UnistyleWrapper.h +92 -47
  29. package/cxx/core/UnistylesRegistry.cpp +19 -11
  30. package/cxx/core/UnistylesRegistry.h +2 -4
  31. package/cxx/hybridObjects/HybridNavigationBar.cpp +3 -3
  32. package/cxx/hybridObjects/HybridNavigationBar.h +2 -2
  33. package/cxx/hybridObjects/HybridShadowRegistry.cpp +32 -45
  34. package/cxx/hybridObjects/HybridShadowRegistry.h +0 -10
  35. package/cxx/hybridObjects/HybridStatusBar.cpp +3 -3
  36. package/cxx/hybridObjects/HybridStatusBar.h +2 -2
  37. package/cxx/hybridObjects/HybridStyleSheet.cpp +25 -8
  38. package/cxx/hybridObjects/HybridStyleSheet.h +2 -1
  39. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +15 -15
  40. package/cxx/hybridObjects/HybridUnistylesRuntime.h +2 -2
  41. package/cxx/parser/Parser.cpp +17 -24
  42. package/cxx/parser/Parser.h +2 -1
  43. package/ios/NativePlatform+ios.swift +5 -7
  44. package/ios/NativePlatform.swift +2 -2
  45. package/ios/UnistylesModuleOnLoad.mm +2 -1
  46. package/lib/commonjs/components/ScopedTheme.js.map +1 -1
  47. package/lib/commonjs/components/index.js +0 -7
  48. package/lib/commonjs/components/index.js.map +1 -1
  49. package/lib/commonjs/components/native/ImageBackground.js +45 -1
  50. package/lib/commonjs/components/native/ImageBackground.js.map +1 -1
  51. package/lib/commonjs/components/native/ImageBackground.native.js +10 -0
  52. package/lib/commonjs/components/native/ImageBackground.native.js.map +1 -0
  53. package/lib/commonjs/components/native/Pressable.js +26 -51
  54. package/lib/commonjs/components/native/Pressable.js.map +1 -1
  55. package/lib/commonjs/components/native/Pressable.native.js +14 -11
  56. package/lib/commonjs/components/native/Pressable.native.js.map +1 -1
  57. package/lib/commonjs/core/createUnistylesElement.js +29 -5
  58. package/lib/commonjs/core/createUnistylesElement.js.map +1 -1
  59. package/lib/commonjs/core/createUnistylesElement.native.js +40 -0
  60. package/lib/commonjs/core/createUnistylesElement.native.js.map +1 -0
  61. package/lib/commonjs/core/createUnistylesImageBackground.js +36 -14
  62. package/lib/commonjs/core/createUnistylesImageBackground.js.map +1 -1
  63. package/lib/commonjs/core/getClassname.js +25 -0
  64. package/lib/commonjs/core/getClassname.js.map +1 -0
  65. package/lib/commonjs/core/getClassname.native.js +9 -0
  66. package/lib/commonjs/core/getClassname.native.js.map +1 -0
  67. package/lib/commonjs/core/index.js +14 -7
  68. package/lib/commonjs/core/index.js.map +1 -1
  69. package/lib/commonjs/core/passForwardRef.js +2 -2
  70. package/lib/commonjs/core/passForwardRef.js.map +1 -1
  71. package/lib/commonjs/core/useProxifiedUnistyles/index.js +13 -0
  72. package/lib/commonjs/core/useProxifiedUnistyles/index.js.map +1 -0
  73. package/lib/commonjs/core/useProxifiedUnistyles/listener.js +22 -0
  74. package/lib/commonjs/core/useProxifiedUnistyles/listener.js.map +1 -0
  75. package/lib/commonjs/core/useProxifiedUnistyles/listener.native.js +26 -0
  76. package/lib/commonjs/core/useProxifiedUnistyles/listener.native.js.map +1 -0
  77. package/lib/commonjs/core/useProxifiedUnistyles/types.js +6 -0
  78. package/lib/commonjs/core/useProxifiedUnistyles/types.js.map +1 -0
  79. package/lib/commonjs/core/{withUnistyles/useDependencies.js → useProxifiedUnistyles/useProxifiedUnistyles.js} +22 -22
  80. package/lib/commonjs/core/useProxifiedUnistyles/useProxifiedUnistyles.js.map +1 -0
  81. package/lib/commonjs/core/useUnistyles.js +19 -0
  82. package/lib/commonjs/core/useUnistyles.js.map +1 -0
  83. package/lib/commonjs/core/warn.js +16 -0
  84. package/lib/commonjs/core/warn.js.map +1 -0
  85. package/lib/commonjs/core/withUnistyles/withUnistyles.js +19 -55
  86. package/lib/commonjs/core/withUnistyles/withUnistyles.js.map +1 -1
  87. package/lib/commonjs/core/withUnistyles/withUnistyles.native.js +32 -65
  88. package/lib/commonjs/core/withUnistyles/withUnistyles.native.js.map +1 -1
  89. package/lib/commonjs/index.js +23 -4
  90. package/lib/commonjs/index.js.map +1 -1
  91. package/lib/commonjs/server/getServerUnistyles.js +38 -0
  92. package/lib/commonjs/server/getServerUnistyles.js.map +1 -0
  93. package/lib/commonjs/server/hydrateServerUnistyles.js +17 -0
  94. package/lib/commonjs/server/hydrateServerUnistyles.js.map +1 -0
  95. package/lib/commonjs/server/index.js +34 -0
  96. package/lib/commonjs/server/index.js.map +1 -0
  97. package/lib/commonjs/server/resetServerUnistyles.js +16 -0
  98. package/lib/commonjs/server/resetServerUnistyles.js.map +1 -0
  99. package/lib/commonjs/server/types.js +8 -0
  100. package/lib/commonjs/server/types.js.map +1 -0
  101. package/lib/commonjs/server/useServerUnistyles.js +27 -0
  102. package/lib/commonjs/server/useServerUnistyles.js.map +1 -0
  103. package/lib/commonjs/specs/ShadowRegistry/index.js +6 -3
  104. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  105. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  106. package/lib/commonjs/utils.js +4 -2
  107. package/lib/commonjs/utils.js.map +1 -1
  108. package/lib/commonjs/web/convert/object/filter.js +2 -2
  109. package/lib/commonjs/web/convert/object/filter.js.map +1 -1
  110. package/lib/commonjs/web/convert/style.js +4 -4
  111. package/lib/commonjs/web/convert/style.js.map +1 -1
  112. package/lib/commonjs/web/create.js +20 -15
  113. package/lib/commonjs/web/create.js.map +1 -1
  114. package/lib/commonjs/web/css/core.js +55 -0
  115. package/lib/commonjs/web/css/core.js.map +1 -0
  116. package/lib/commonjs/web/css/index.js +17 -0
  117. package/lib/commonjs/web/css/index.js.map +1 -0
  118. package/lib/commonjs/web/css/state.js +155 -0
  119. package/lib/commonjs/web/css/state.js.map +1 -0
  120. package/lib/commonjs/web/css/utils.js +47 -0
  121. package/lib/commonjs/web/css/utils.js.map +1 -0
  122. package/lib/commonjs/web/index.js +14 -18
  123. package/lib/commonjs/web/index.js.map +1 -1
  124. package/lib/commonjs/web/listener.js +9 -7
  125. package/lib/commonjs/web/listener.js.map +1 -1
  126. package/lib/commonjs/web/registry.js +44 -123
  127. package/lib/commonjs/web/registry.js.map +1 -1
  128. package/lib/commonjs/web/runtime.js +28 -21
  129. package/lib/commonjs/web/runtime.js.map +1 -1
  130. package/lib/commonjs/web/services.js +28 -0
  131. package/lib/commonjs/web/services.js.map +1 -0
  132. package/lib/commonjs/web/shadowRegistry.js +46 -93
  133. package/lib/commonjs/web/shadowRegistry.js.map +1 -1
  134. package/lib/commonjs/web/state.js +39 -9
  135. package/lib/commonjs/web/state.js.map +1 -1
  136. package/lib/commonjs/web/types.js +6 -0
  137. package/lib/commonjs/web/types.js.map +1 -0
  138. package/lib/commonjs/web/utils/common.js +29 -9
  139. package/lib/commonjs/web/utils/common.js.map +1 -1
  140. package/lib/commonjs/web/utils/unistyle.js +28 -19
  141. package/lib/commonjs/web/utils/unistyle.js.map +1 -1
  142. package/lib/commonjs/web/variants.js +25 -27
  143. package/lib/commonjs/web/variants.js.map +1 -1
  144. package/lib/module/components/ScopedTheme.js.map +1 -1
  145. package/lib/module/components/index.js +0 -1
  146. package/lib/module/components/index.js.map +1 -1
  147. package/lib/module/components/native/ImageBackground.js +45 -2
  148. package/lib/module/components/native/ImageBackground.js.map +1 -1
  149. package/lib/module/components/native/ImageBackground.native.js +6 -0
  150. package/lib/module/components/native/ImageBackground.native.js.map +1 -0
  151. package/lib/module/components/native/Pressable.js +27 -52
  152. package/lib/module/components/native/Pressable.js.map +1 -1
  153. package/lib/module/components/native/Pressable.native.js +15 -12
  154. package/lib/module/components/native/Pressable.native.js.map +1 -1
  155. package/lib/module/core/createUnistylesElement.js +29 -5
  156. package/lib/module/core/createUnistylesElement.js.map +1 -1
  157. package/lib/module/core/createUnistylesElement.native.js +33 -0
  158. package/lib/module/core/createUnistylesElement.native.js.map +1 -0
  159. package/lib/module/core/createUnistylesImageBackground.js +34 -13
  160. package/lib/module/core/createUnistylesImageBackground.js.map +1 -1
  161. package/lib/module/core/getClassname.js +20 -0
  162. package/lib/module/core/getClassname.js.map +1 -0
  163. package/lib/module/core/getClassname.native.js +4 -0
  164. package/lib/module/core/getClassname.native.js.map +1 -0
  165. package/lib/module/core/index.js +2 -1
  166. package/lib/module/core/index.js.map +1 -1
  167. package/lib/module/core/passForwardRef.js +2 -2
  168. package/lib/module/core/passForwardRef.js.map +1 -1
  169. package/lib/module/core/useProxifiedUnistyles/index.js +4 -0
  170. package/lib/module/core/useProxifiedUnistyles/index.js.map +1 -0
  171. package/lib/module/core/useProxifiedUnistyles/listener.js +17 -0
  172. package/lib/module/core/useProxifiedUnistyles/listener.js.map +1 -0
  173. package/lib/module/core/useProxifiedUnistyles/listener.native.js +21 -0
  174. package/lib/module/core/useProxifiedUnistyles/listener.native.js.map +1 -0
  175. package/lib/module/core/useProxifiedUnistyles/types.js +4 -0
  176. package/lib/module/core/useProxifiedUnistyles/types.js.map +1 -0
  177. package/lib/module/core/{withUnistyles/useDependencies.js → useProxifiedUnistyles/useProxifiedUnistyles.js} +19 -19
  178. package/lib/module/core/useProxifiedUnistyles/useProxifiedUnistyles.js.map +1 -0
  179. package/lib/module/core/useUnistyles.js +14 -0
  180. package/lib/module/core/useUnistyles.js.map +1 -0
  181. package/lib/module/core/warn.js +11 -0
  182. package/lib/module/core/warn.js.map +1 -0
  183. package/lib/module/core/withUnistyles/withUnistyles.js +19 -55
  184. package/lib/module/core/withUnistyles/withUnistyles.js.map +1 -1
  185. package/lib/module/core/withUnistyles/withUnistyles.native.js +33 -66
  186. package/lib/module/core/withUnistyles/withUnistyles.native.js.map +1 -1
  187. package/lib/module/index.js +3 -2
  188. package/lib/module/index.js.map +1 -1
  189. package/lib/module/server/getServerUnistyles.js +32 -0
  190. package/lib/module/server/getServerUnistyles.js.map +1 -0
  191. package/lib/module/server/hydrateServerUnistyles.js +12 -0
  192. package/lib/module/server/hydrateServerUnistyles.js.map +1 -0
  193. package/lib/module/server/index.js +7 -0
  194. package/lib/module/server/index.js.map +1 -0
  195. package/lib/module/server/resetServerUnistyles.js +11 -0
  196. package/lib/module/server/resetServerUnistyles.js.map +1 -0
  197. package/lib/module/server/types.js +4 -0
  198. package/lib/module/server/types.js.map +1 -0
  199. package/lib/module/server/useServerUnistyles.js +22 -0
  200. package/lib/module/server/useServerUnistyles.js.map +1 -0
  201. package/lib/module/specs/ShadowRegistry/index.js +6 -3
  202. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  203. package/lib/module/specs/StyleSheet/index.js.map +1 -1
  204. package/lib/module/utils.js +2 -1
  205. package/lib/module/utils.js.map +1 -1
  206. package/lib/module/web/convert/object/filter.js +2 -2
  207. package/lib/module/web/convert/object/filter.js.map +1 -1
  208. package/lib/module/web/convert/style.js +4 -4
  209. package/lib/module/web/convert/style.js.map +1 -1
  210. package/lib/module/web/create.js +20 -15
  211. package/lib/module/web/create.js.map +1 -1
  212. package/lib/module/web/css/core.js +50 -0
  213. package/lib/module/web/css/core.js.map +1 -0
  214. package/lib/module/web/css/index.js +4 -0
  215. package/lib/module/web/css/index.js.map +1 -0
  216. package/lib/module/web/css/state.js +150 -0
  217. package/lib/module/web/css/state.js.map +1 -0
  218. package/lib/module/web/css/utils.js +41 -0
  219. package/lib/module/web/css/utils.js.map +1 -0
  220. package/lib/module/web/index.js +10 -5
  221. package/lib/module/web/index.js.map +1 -1
  222. package/lib/module/web/listener.js +8 -7
  223. package/lib/module/web/listener.js.map +1 -1
  224. package/lib/module/web/registry.js +44 -124
  225. package/lib/module/web/registry.js.map +1 -1
  226. package/lib/module/web/runtime.js +27 -21
  227. package/lib/module/web/runtime.js.map +1 -1
  228. package/lib/module/web/services.js +23 -0
  229. package/lib/module/web/services.js.map +1 -0
  230. package/lib/module/web/shadowRegistry.js +46 -94
  231. package/lib/module/web/shadowRegistry.js.map +1 -1
  232. package/lib/module/web/state.js +39 -10
  233. package/lib/module/web/state.js.map +1 -1
  234. package/lib/module/web/types.js +4 -0
  235. package/lib/module/web/types.js.map +1 -0
  236. package/lib/module/web/utils/common.js +26 -7
  237. package/lib/module/web/utils/common.js.map +1 -1
  238. package/lib/module/web/utils/unistyle.js +27 -17
  239. package/lib/module/web/utils/unistyle.js.map +1 -1
  240. package/lib/module/web/variants.js +25 -27
  241. package/lib/module/web/variants.js.map +1 -1
  242. package/lib/typescript/src/components/index.d.ts +0 -1
  243. package/lib/typescript/src/components/index.d.ts.map +1 -1
  244. package/lib/typescript/src/components/native/ActivityIndicator.d.ts +3 -1
  245. package/lib/typescript/src/components/native/ActivityIndicator.d.ts.map +1 -1
  246. package/lib/typescript/src/components/native/FlatList.d.ts +3 -1
  247. package/lib/typescript/src/components/native/FlatList.d.ts.map +1 -1
  248. package/lib/typescript/src/components/native/Image.d.ts +3 -1
  249. package/lib/typescript/src/components/native/Image.d.ts.map +1 -1
  250. package/lib/typescript/src/components/native/ImageBackground.d.ts +8 -2
  251. package/lib/typescript/src/components/native/ImageBackground.d.ts.map +1 -1
  252. package/lib/typescript/src/components/native/ImageBackground.native.d.ts +3 -0
  253. package/lib/typescript/src/components/native/ImageBackground.native.d.ts.map +1 -0
  254. package/lib/typescript/src/components/native/KeyboardAvoidingView.d.ts +3 -1
  255. package/lib/typescript/src/components/native/KeyboardAvoidingView.d.ts.map +1 -1
  256. package/lib/typescript/src/components/native/Pressable.d.ts +3 -2
  257. package/lib/typescript/src/components/native/Pressable.d.ts.map +1 -1
  258. package/lib/typescript/src/components/native/Pressable.native.d.ts.map +1 -1
  259. package/lib/typescript/src/components/native/RefreshControl.d.ts +3 -1
  260. package/lib/typescript/src/components/native/RefreshControl.d.ts.map +1 -1
  261. package/lib/typescript/src/components/native/ScrollView.d.ts +3 -1
  262. package/lib/typescript/src/components/native/ScrollView.d.ts.map +1 -1
  263. package/lib/typescript/src/components/native/SectionList.d.ts +3 -1
  264. package/lib/typescript/src/components/native/SectionList.d.ts.map +1 -1
  265. package/lib/typescript/src/components/native/Switch.d.ts +3 -1
  266. package/lib/typescript/src/components/native/Switch.d.ts.map +1 -1
  267. package/lib/typescript/src/components/native/Text.d.ts +3 -1
  268. package/lib/typescript/src/components/native/Text.d.ts.map +1 -1
  269. package/lib/typescript/src/components/native/TextInput.d.ts +3 -1
  270. package/lib/typescript/src/components/native/TextInput.d.ts.map +1 -1
  271. package/lib/typescript/src/components/native/TouchableHighlight.d.ts +3 -1
  272. package/lib/typescript/src/components/native/TouchableHighlight.d.ts.map +1 -1
  273. package/lib/typescript/src/components/native/TouchableOpacity.d.ts +3 -1
  274. package/lib/typescript/src/components/native/TouchableOpacity.d.ts.map +1 -1
  275. package/lib/typescript/src/components/native/View.d.ts +3 -1
  276. package/lib/typescript/src/components/native/View.d.ts.map +1 -1
  277. package/lib/typescript/src/components/native/VirtualizedList.d.ts +3 -1
  278. package/lib/typescript/src/components/native/VirtualizedList.d.ts.map +1 -1
  279. package/lib/typescript/src/core/createUnistylesElement.d.ts +6 -1
  280. package/lib/typescript/src/core/createUnistylesElement.d.ts.map +1 -1
  281. package/lib/typescript/src/core/createUnistylesElement.native.d.ts +3 -0
  282. package/lib/typescript/src/core/createUnistylesElement.native.d.ts.map +1 -0
  283. package/lib/typescript/src/core/createUnistylesImageBackground.d.ts.map +1 -1
  284. package/lib/typescript/src/core/getClassname.d.ts +7 -0
  285. package/lib/typescript/src/core/getClassname.d.ts.map +1 -0
  286. package/lib/typescript/src/core/getClassname.native.d.ts +2 -0
  287. package/lib/typescript/src/core/getClassname.native.d.ts.map +1 -0
  288. package/lib/typescript/src/core/index.d.ts +2 -1
  289. package/lib/typescript/src/core/index.d.ts.map +1 -1
  290. package/lib/typescript/src/core/passForwardRef.d.ts.map +1 -1
  291. package/lib/typescript/src/core/useProxifiedUnistyles/index.d.ts +2 -0
  292. package/lib/typescript/src/core/useProxifiedUnistyles/index.d.ts.map +1 -0
  293. package/lib/typescript/src/core/useProxifiedUnistyles/listener.d.ts +3 -0
  294. package/lib/typescript/src/core/useProxifiedUnistyles/listener.d.ts.map +1 -0
  295. package/lib/typescript/src/core/useProxifiedUnistyles/listener.native.d.ts +3 -0
  296. package/lib/typescript/src/core/useProxifiedUnistyles/listener.native.d.ts.map +1 -0
  297. package/lib/typescript/src/core/useProxifiedUnistyles/types.d.ts +7 -0
  298. package/lib/typescript/src/core/useProxifiedUnistyles/types.d.ts.map +1 -0
  299. package/lib/typescript/src/core/useProxifiedUnistyles/useProxifiedUnistyles.d.ts +8 -0
  300. package/lib/typescript/src/core/useProxifiedUnistyles/useProxifiedUnistyles.d.ts.map +1 -0
  301. package/lib/typescript/src/core/useUnistyles.d.ts +6 -0
  302. package/lib/typescript/src/core/useUnistyles.d.ts.map +1 -0
  303. package/lib/typescript/src/core/warn.d.ts +3 -0
  304. package/lib/typescript/src/core/warn.d.ts.map +1 -0
  305. package/lib/typescript/src/core/withUnistyles/withUnistyles.d.ts +0 -3
  306. package/lib/typescript/src/core/withUnistyles/withUnistyles.d.ts.map +1 -1
  307. package/lib/typescript/src/core/withUnistyles/withUnistyles.native.d.ts.map +1 -1
  308. package/lib/typescript/src/index.d.ts +3 -2
  309. package/lib/typescript/src/index.d.ts.map +1 -1
  310. package/lib/typescript/src/server/getServerUnistyles.d.ts +4 -0
  311. package/lib/typescript/src/server/getServerUnistyles.d.ts.map +1 -0
  312. package/lib/typescript/src/server/hydrateServerUnistyles.d.ts +8 -0
  313. package/lib/typescript/src/server/hydrateServerUnistyles.d.ts.map +1 -0
  314. package/lib/typescript/src/server/index.d.ts +5 -0
  315. package/lib/typescript/src/server/index.d.ts.map +1 -0
  316. package/lib/typescript/src/server/resetServerUnistyles.d.ts +2 -0
  317. package/lib/typescript/src/server/resetServerUnistyles.d.ts.map +1 -0
  318. package/lib/typescript/src/server/types.d.ts +5 -0
  319. package/lib/typescript/src/server/types.d.ts.map +1 -0
  320. package/lib/typescript/src/server/useServerUnistyles.d.ts +4 -0
  321. package/lib/typescript/src/server/useServerUnistyles.d.ts.map +1 -0
  322. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +0 -3
  323. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  324. package/lib/typescript/src/specs/StyleSheet/index.d.ts +4 -1
  325. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  326. package/lib/typescript/src/utils.d.ts +1 -0
  327. package/lib/typescript/src/utils.d.ts.map +1 -1
  328. package/lib/typescript/src/web/convert/style.d.ts.map +1 -1
  329. package/lib/typescript/src/web/create.d.ts.map +1 -1
  330. package/lib/typescript/src/web/css/core.d.ts +3 -0
  331. package/lib/typescript/src/web/css/core.d.ts.map +1 -0
  332. package/lib/typescript/src/web/css/index.d.ts +2 -0
  333. package/lib/typescript/src/web/css/index.d.ts.map +1 -0
  334. package/lib/typescript/src/web/css/state.d.ts +30 -0
  335. package/lib/typescript/src/web/css/state.d.ts.map +1 -0
  336. package/lib/typescript/src/web/css/utils.d.ts +4 -0
  337. package/lib/typescript/src/web/css/utils.d.ts.map +1 -0
  338. package/lib/typescript/src/web/index.d.ts +7 -1
  339. package/lib/typescript/src/web/index.d.ts.map +1 -1
  340. package/lib/typescript/src/web/listener.d.ts +4 -3
  341. package/lib/typescript/src/web/listener.d.ts.map +1 -1
  342. package/lib/typescript/src/web/registry.d.ts +11 -8
  343. package/lib/typescript/src/web/registry.d.ts.map +1 -1
  344. package/lib/typescript/src/web/runtime.d.ts +6 -4
  345. package/lib/typescript/src/web/runtime.d.ts.map +1 -1
  346. package/lib/typescript/src/web/services.d.ts +15 -0
  347. package/lib/typescript/src/web/services.d.ts.map +1 -0
  348. package/lib/typescript/src/web/shadowRegistry.d.ts +10 -13
  349. package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -1
  350. package/lib/typescript/src/web/state.d.ts +7 -3
  351. package/lib/typescript/src/web/state.d.ts.map +1 -1
  352. package/lib/typescript/src/web/types.d.ts +13 -0
  353. package/lib/typescript/src/web/types.d.ts.map +1 -0
  354. package/lib/typescript/src/web/utils/common.d.ts +2 -1
  355. package/lib/typescript/src/web/utils/common.d.ts.map +1 -1
  356. package/lib/typescript/src/web/utils/unistyle.d.ts +5 -4
  357. package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -1
  358. package/lib/typescript/src/web/variants.d.ts +2 -2
  359. package/lib/typescript/src/web/variants.d.ts.map +1 -1
  360. package/nitrogen/generated/android/c++/JColorScheme.hpp +2 -1
  361. package/nitrogen/generated/android/c++/JDimensions.hpp +2 -1
  362. package/nitrogen/generated/android/c++/JFunc_void_UnistylesNativeMiniRuntime.hpp +36 -10
  363. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +53 -19
  364. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +5 -5
  365. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +1 -1
  366. package/nitrogen/generated/android/c++/JInsets.hpp +2 -1
  367. package/nitrogen/generated/android/c++/JOrientation.hpp +2 -1
  368. package/nitrogen/generated/android/c++/JUnistyleDependency.hpp +2 -1
  369. package/nitrogen/generated/android/c++/JUnistylesNativeMiniRuntime.hpp +2 -1
  370. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/ColorScheme.kt +1 -1
  371. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Dimensions.kt +10 -5
  372. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_UnistylesNativeMiniRuntime.kt +43 -14
  373. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.kt +43 -14
  374. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +10 -10
  375. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Insets.kt +13 -8
  376. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Orientation.kt +1 -1
  377. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistyleDependency.kt +1 -1
  378. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +19 -14
  379. package/nitrogen/generated/android/unistyles+autolinking.cmake +4 -1
  380. package/nitrogen/generated/android/unistyles+autolinking.gradle +1 -1
  381. package/nitrogen/generated/android/unistylesOnLoad.cpp +7 -3
  382. package/nitrogen/generated/android/unistylesOnLoad.hpp +1 -1
  383. package/nitrogen/generated/ios/Unistyles+autolinking.rb +1 -1
  384. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +21 -6
  385. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +105 -27
  386. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +5 -3
  387. package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.cpp +1 -1
  388. package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +92 -33
  389. package/nitrogen/generated/ios/swift/ColorScheme.swift +1 -1
  390. package/nitrogen/generated/ios/swift/Dimensions.swift +1 -1
  391. package/nitrogen/generated/ios/swift/Func_void_UnistylesNativeMiniRuntime.swift +46 -0
  392. package/nitrogen/generated/ios/swift/Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.swift +46 -0
  393. package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +36 -23
  394. package/nitrogen/generated/ios/swift/HybridNativePlatformSpec_cxx.swift +327 -0
  395. package/nitrogen/generated/ios/swift/Insets.swift +1 -1
  396. package/nitrogen/generated/ios/swift/Orientation.swift +1 -1
  397. package/nitrogen/generated/ios/swift/UnistyleDependency.swift +1 -1
  398. package/nitrogen/generated/ios/swift/UnistylesNativeMiniRuntime.swift +1 -1
  399. package/nitrogen/generated/shared/c++/ColorScheme.hpp +1 -1
  400. package/nitrogen/generated/shared/c++/Dimensions.hpp +1 -1
  401. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.cpp +1 -1
  402. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +1 -1
  403. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.cpp +1 -1
  404. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +1 -1
  405. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.cpp +1 -1
  406. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +1 -1
  407. package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.cpp +1 -1
  408. package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +1 -1
  409. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.cpp +1 -1
  410. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +1 -1
  411. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.cpp +1 -1
  412. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +1 -1
  413. package/nitrogen/generated/shared/c++/Insets.hpp +1 -1
  414. package/nitrogen/generated/shared/c++/Orientation.hpp +1 -1
  415. package/nitrogen/generated/shared/c++/UnistyleDependency.hpp +2 -2
  416. package/nitrogen/generated/shared/c++/UnistylesCxxMiniRuntime.hpp +1 -1
  417. package/nitrogen/generated/shared/c++/UnistylesNativeMiniRuntime.hpp +1 -1
  418. package/package.json +21 -12
  419. package/plugin/import.js +1 -21
  420. package/plugin/index.d.ts +41 -0
  421. package/plugin/index.js +44 -76
  422. package/plugin/stylesheet.js +17 -1
  423. package/plugin/variants.js +49 -75
  424. package/src/components/ScopedTheme.tsx +1 -1
  425. package/src/components/index.ts +0 -1
  426. package/src/components/native/ImageBackground.native.tsx +4 -0
  427. package/src/components/native/ImageBackground.tsx +54 -2
  428. package/src/components/native/Pressable.native.tsx +16 -17
  429. package/src/components/native/Pressable.tsx +35 -69
  430. package/src/core/createUnistylesElement.native.tsx +36 -0
  431. package/src/core/createUnistylesElement.tsx +42 -8
  432. package/src/core/createUnistylesImageBackground.tsx +40 -19
  433. package/src/core/getClassname.native.ts +1 -0
  434. package/src/core/getClassname.ts +13 -0
  435. package/src/core/index.ts +2 -1
  436. package/src/core/passForwardRef.ts +1 -2
  437. package/src/core/useProxifiedUnistyles/index.ts +1 -0
  438. package/src/core/useProxifiedUnistyles/listener.native.ts +18 -0
  439. package/src/core/useProxifiedUnistyles/listener.ts +13 -0
  440. package/src/core/useProxifiedUnistyles/types.ts +7 -0
  441. package/src/core/{withUnistyles/useDependencies.ts → useProxifiedUnistyles/useProxifiedUnistyles.ts} +19 -26
  442. package/src/core/useUnistyles.ts +11 -0
  443. package/src/core/warn.ts +13 -0
  444. package/src/core/withUnistyles/withUnistyles.native.tsx +39 -68
  445. package/src/core/withUnistyles/withUnistyles.tsx +19 -56
  446. package/src/index.ts +3 -2
  447. package/src/server/getServerUnistyles.tsx +20 -0
  448. package/src/server/hydrateServerUnistyles.ts +17 -0
  449. package/src/server/index.ts +5 -0
  450. package/src/server/resetServerUnistyles.ts +9 -0
  451. package/src/server/types.ts +4 -0
  452. package/src/server/useServerUnistyles.tsx +22 -0
  453. package/src/specs/ShadowRegistry/index.ts +12 -9
  454. package/src/specs/StyleSheet/index.ts +5 -1
  455. package/src/utils.ts +15 -11
  456. package/src/web/convert/object/filter.ts +2 -2
  457. package/src/web/convert/style.ts +8 -7
  458. package/src/web/create.ts +23 -18
  459. package/src/web/css/core.ts +58 -0
  460. package/src/web/css/index.ts +1 -0
  461. package/src/web/css/state.ts +191 -0
  462. package/src/web/css/utils.ts +54 -0
  463. package/src/web/index.ts +18 -5
  464. package/src/web/listener.ts +8 -8
  465. package/src/web/registry.ts +47 -152
  466. package/src/web/runtime.ts +32 -22
  467. package/src/web/services.ts +28 -0
  468. package/src/web/shadowRegistry.ts +46 -104
  469. package/src/web/state.ts +46 -11
  470. package/src/web/types.ts +13 -0
  471. package/src/web/utils/common.ts +32 -8
  472. package/src/web/utils/unistyle.ts +40 -25
  473. package/src/web/variants.ts +27 -27
  474. package/cxx/core/HostStyle.cpp +0 -73
  475. package/cxx/core/HostStyle.h +0 -34
  476. package/lib/commonjs/components/Variants.js +0 -36
  477. package/lib/commonjs/components/Variants.js.map +0 -1
  478. package/lib/commonjs/core/createUnistylesComponent.js +0 -16
  479. package/lib/commonjs/core/createUnistylesComponent.js.map +0 -1
  480. package/lib/commonjs/core/withUnistyles/useDependencies.js.map +0 -1
  481. package/lib/module/components/Variants.js +0 -29
  482. package/lib/module/components/Variants.js.map +0 -1
  483. package/lib/module/core/createUnistylesComponent.js +0 -11
  484. package/lib/module/core/createUnistylesComponent.js.map +0 -1
  485. package/lib/module/core/withUnistyles/useDependencies.js.map +0 -1
  486. package/lib/typescript/src/components/Variants.d.ts +0 -7
  487. package/lib/typescript/src/components/Variants.d.ts.map +0 -1
  488. package/lib/typescript/src/core/createUnistylesComponent.d.ts +0 -14
  489. package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +0 -1
  490. package/lib/typescript/src/core/withUnistyles/useDependencies.d.ts +0 -13
  491. package/lib/typescript/src/core/withUnistyles/useDependencies.d.ts.map +0 -1
  492. package/nitrogen/generated/android/unistylesOnLoad.kt +0 -1
  493. package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +0 -314
  494. package/plugin/style.js +0 -168
  495. package/src/components/Variants.tsx +0 -30
  496. package/src/core/createUnistylesComponent.tsx +0 -14
@@ -1,42 +1,11 @@
1
- import React, { useEffect, useState, type ComponentType, forwardRef, useRef, useMemo, type ComponentProps, type ComponentRef } from 'react'
1
+ import React, { type ComponentType, forwardRef, type ComponentProps, type ComponentRef } from 'react'
2
2
  import type { PartialBy } from '../../types/common'
3
- import { UnistylesListener } from '../../web/listener'
4
- import { UnistylesShadowRegistry } from '../../web'
5
- import { equal } from '../../web/utils'
6
3
  import { deepMergeObjects } from '../../utils'
7
4
  import type { Mappings, SupportedStyleProps } from './types'
8
- import { useDependencies } from './useDependencies'
9
- import { UnistyleDependency } from '../../specs/NativePlatform'
10
5
  import type { UnistylesValues } from '../../types'
11
-
12
- const useShadowRegistry = (style?: Record<string, any>) => {
13
- const [ref] = useState(document.createElement('div'))
14
- const oldClassNames = useRef<Array<string>>([])
15
- const classNames = useMemo(() => {
16
- if (!style) {
17
- return []
18
- }
19
-
20
- const newClassNames = UnistylesShadowRegistry.add(ref, [style]) ?? []
21
-
22
- if (equal(oldClassNames.current, newClassNames)) {
23
- return oldClassNames.current
24
- }
25
-
26
- oldClassNames.current = newClassNames
27
-
28
- return newClassNames
29
- }, [style])
30
-
31
- useEffect(() => () => {
32
- // Remove styles on unmount
33
- if (style) {
34
- UnistylesShadowRegistry.add(null, [style])
35
- }
36
- })
37
-
38
- return classNames
39
- }
6
+ import { getClassName } from '../getClassname'
7
+ import { maybeWarnAboutMultipleUnistyles } from '../warn'
8
+ import { useProxifiedUnistyles } from '../useProxifiedUnistyles'
40
9
 
41
10
  // @ts-expect-error
42
11
  type GenericComponentProps<T> = ComponentProps<T>
@@ -47,42 +16,36 @@ export const withUnistyles = <TComponent, TMappings extends GenericComponentProp
47
16
  type TProps = GenericComponentProps<TComponent>
48
17
  type PropsWithUnistyles = PartialBy<TProps, keyof TMappings | SupportedStyleProps> & {
49
18
  uniProps?: Mappings<TProps>
19
+ }
20
+ type UnistyleStyles = {
50
21
  style?: UnistylesValues,
51
22
  contentContainerStyle?: UnistylesValues
52
23
  }
53
24
 
54
25
  return forwardRef<GenericComponentRef<TComponent>, PropsWithUnistyles>((props, ref) => {
55
- const narrowedProps = props as PropsWithUnistyles
56
- const styleClassNames = useShadowRegistry(narrowedProps.style)
57
- const contentContainerStyleClassNames = useShadowRegistry(narrowedProps.contentContainerStyle)
58
- const { mappingsCallback } = useDependencies(({ dependencies, updateTheme, updateRuntime }) => {
59
- const disposeTheme = UnistylesListener.addListeners(dependencies.filter(dependency => dependency === UnistyleDependency.Theme), updateTheme)
60
- const disposeRuntime = UnistylesListener.addListeners(dependencies.filter(dependency => dependency !== UnistyleDependency.Theme), updateRuntime)
26
+ const narrowedProps = props as PropsWithUnistyles & UnistyleStyles
27
+ const styleClassNames = getClassName(narrowedProps.style)
28
+ const contentContainerStyleClassNames = getClassName(narrowedProps.contentContainerStyle)
29
+ const { proxifiedRuntime, proxifiedTheme } = useProxifiedUnistyles()
61
30
 
62
- return () => {
63
- disposeTheme()
64
- disposeRuntime()
65
- }
66
- })
67
- const mappingsProps = mappings ? mappingsCallback(mappings) : {}
68
- const unistyleProps = narrowedProps.uniProps ? mappingsCallback(narrowedProps.uniProps) : {}
31
+ const mappingsProps = mappings ? mappings(proxifiedTheme, proxifiedRuntime) : {}
32
+ const unistyleProps = narrowedProps.uniProps ? narrowedProps.uniProps(proxifiedTheme, proxifiedRuntime) : {}
69
33
 
70
34
  const combinedProps = {
71
35
  ...deepMergeObjects(mappingsProps, unistyleProps, props),
72
36
  ...narrowedProps.style ? {
73
- style: {
74
- $$css: true,
75
- 'unistyles': styleClassNames.join(' ')
76
- },
37
+ style: styleClassNames,
77
38
  } : {},
78
39
  ...narrowedProps.contentContainerStyle ? {
79
- style: {
80
- $$css: true,
81
- 'unistyles': contentContainerStyleClassNames.join(' ')
82
- },
40
+ style: contentContainerStyleClassNames,
83
41
  } : {},
84
42
  } as any
85
43
 
44
+ // @ts-ignore
45
+ maybeWarnAboutMultipleUnistyles(narrowedProps.style, `withUnistyles(${Component.displayName ?? Component.name ?? 'Unknown'})`)
46
+ // @ts-ignore
47
+ maybeWarnAboutMultipleUnistyles(narrowedProps.contentContainerStyle, `withUnistyles(${Component.displayName ?? Component.name ?? 'Unknown'})`)
48
+
86
49
  const NativeComponent = Component as ComponentType
87
50
 
88
51
  return <NativeComponent {...combinedProps} ref={ref} />
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { StyleSheet, UnistylesRuntime, StatusBar, NavigationBar } from './specs'
2
2
  export { mq } from './mq'
3
3
  export type { UnistylesThemes, UnistylesBreakpoints } from './global'
4
- export { createUnistylesComponent, withUnistyles } from './core'
4
+ export { withUnistyles, useUnistyles } from './core'
5
5
  export type { UnistylesVariants } from './types'
6
- export { Display, Hide, Variants, ScopedTheme } from './components'
6
+ export { Display, Hide, ScopedTheme } from './components'
7
+ export { useServerUnistyles, hydrateServerUnistyles, getServerUnistyles, resetServerUnistyles } from './server'
@@ -0,0 +1,20 @@
1
+ import React from 'react'
2
+ import { StyleSheet } from 'react-native'
3
+ import { error, isServer } from '../web/utils'
4
+ import { UnistylesWeb } from '../web'
5
+ import { DefaultServerUnistylesSettings, type ServerUnistylesSettings } from './types'
6
+
7
+ export const getServerUnistyles = ({ includeRNWStyles = true }: ServerUnistylesSettings = DefaultServerUnistylesSettings) => {
8
+ if (!isServer()) {
9
+ throw error('Server styles should only be read on the server')
10
+ }
11
+ // @ts-ignore
12
+ const rnwStyle: string | null = includeRNWStyles ? (StyleSheet?.getSheet().textContent ?? '') : null
13
+ const css = UnistylesWeb.registry.css.getStyles()
14
+ const state = UnistylesWeb.registry.css.getState()
15
+ return <>
16
+ {rnwStyle && <style id='rnw-style'>{rnwStyle}</style>}
17
+ <style id='unistyles-web'>{css}</style>
18
+ <script id='unistyles-script'>{`window.__UNISTYLES_STATE__ = ${JSON.stringify(state)}`}</script>
19
+ </>
20
+ }
@@ -0,0 +1,17 @@
1
+ import { error, isServer } from '../web/utils'
2
+ import { UnistylesWeb } from '../web'
3
+
4
+ declare global {
5
+ interface Window {
6
+ // @ts-ignore
7
+ __UNISTYLES_STATE__: ReturnType<typeof UnistylesWeb.registry.css.getState>
8
+ }
9
+ }
10
+
11
+ export const hydrateServerUnistyles = () => {
12
+ if (isServer()) {
13
+ throw error('Server styles should only be hydrated on the client')
14
+ }
15
+ UnistylesWeb.registry.css.hydrate(window.__UNISTYLES_STATE__)
16
+ document.querySelector('#unistyles-script')?.remove()
17
+ }
@@ -0,0 +1,5 @@
1
+ export { useServerUnistyles } from './useServerUnistyles'
2
+ export { getServerUnistyles } from './getServerUnistyles'
3
+ export { resetServerUnistyles } from './resetServerUnistyles'
4
+ export { hydrateServerUnistyles } from './hydrateServerUnistyles'
5
+
@@ -0,0 +1,9 @@
1
+ import { error, isServer } from '../web/utils'
2
+ import { UnistylesWeb } from '../web'
3
+
4
+ export const resetServerUnistyles = () => {
5
+ if (!isServer()) {
6
+ throw error('Server styles should only be reset on the server')
7
+ }
8
+ UnistylesWeb.registry.reset()
9
+ }
@@ -0,0 +1,4 @@
1
+ export type ServerUnistylesSettings = {
2
+ includeRNWStyles?: boolean
3
+ }
4
+ export const DefaultServerUnistylesSettings = {}
@@ -0,0 +1,22 @@
1
+ import React, { useRef } from 'react'
2
+ import { isServer } from '../web/utils'
3
+ import { DefaultServerUnistylesSettings, type ServerUnistylesSettings } from './types'
4
+ import { getServerUnistyles } from './getServerUnistyles'
5
+ import { resetServerUnistyles } from './resetServerUnistyles'
6
+ import { hydrateServerUnistyles } from './hydrateServerUnistyles'
7
+
8
+ export const useServerUnistyles = (settings: ServerUnistylesSettings = DefaultServerUnistylesSettings): React.ReactNode | null => {
9
+ const isServerInserted = useRef(false)
10
+
11
+ if (isServer() && !isServerInserted.current) {
12
+ isServerInserted.current = true
13
+ const components = getServerUnistyles(settings)
14
+ resetServerUnistyles()
15
+ return components
16
+ }
17
+
18
+ if (!isServer()) {
19
+ hydrateServerUnistyles()
20
+ }
21
+ return null
22
+ }
@@ -2,8 +2,6 @@ import { NitroModules } from 'react-native-nitro-modules'
2
2
  import type { UnistylesShadowRegistry as UnistylesShadowRegistrySpec } from './ShadowRegistry.nitro'
3
3
  import type { ShadowNode, Unistyle, ViewHandle } from './types'
4
4
 
5
- type Variants = Record<string, string | boolean | undefined>
6
-
7
5
  interface ShadowRegistry extends UnistylesShadowRegistrySpec {
8
6
  // Babel API
9
7
  add(handle?: ViewHandle, styles?: Array<Unistyle>): void,
@@ -11,10 +9,8 @@ interface ShadowRegistry extends UnistylesShadowRegistrySpec {
11
9
  // JSI
12
10
  link(node: ShadowNode, styles?: Array<Unistyle>): void,
13
11
  unlink(node: ShadowNode): void,
14
- selectVariants(variants?: Variants): void,
15
12
  setScopedTheme(themeName?: string): void,
16
- getScopedTheme(): string | undefined,
17
- getVariants(): Record<string, string | boolean | undefined> | undefined,
13
+ getScopedTheme(): string | undefined
18
14
  }
19
15
 
20
16
  const HybridShadowRegistry = NitroModules.createHybridObject<ShadowRegistry>('UnistylesShadowRegistry')
@@ -36,16 +32,23 @@ const findShadowNodeForHandle = (handle: ViewHandle) => {
36
32
 
37
33
  HybridShadowRegistry.add = (handle, styles) => {
38
34
  // virtualized nodes can be null
39
- if (!handle || !styles || !Array.isArray(styles)) {
35
+ if (!handle || !styles) {
40
36
  return
41
37
  }
42
38
 
39
+ const stylesArray = Array.isArray(styles)
40
+ ? styles.flat()
41
+ : [styles]
42
+
43
43
  // filter Reanimated styles and styles that are undefined
44
- const filteredStyles = styles
44
+ const filteredStyles = stylesArray
45
45
  .filter(style => !style?.initial?.updater)
46
- .filter(Boolean)
46
+ .filter(style => style && Object.keys(style).length > 0)
47
+ .flat()
47
48
 
48
- HybridShadowRegistry.link(findShadowNodeForHandle(handle), filteredStyles)
49
+ if (filteredStyles.length > 0) {
50
+ HybridShadowRegistry.link(findShadowNodeForHandle(handle), filteredStyles)
51
+ }
49
52
  }
50
53
 
51
54
  HybridShadowRegistry.remove = handle => {
@@ -5,12 +5,16 @@ import type { UnistylesStyleSheet as UnistylesStyleSheetSpec } from './Unistyles
5
5
  import type { UnistylesBreakpoints, UnistylesThemes } from '../../global'
6
6
  import type { CreateUnistylesStyleSheet } from '../../types'
7
7
 
8
- type UnistylesSettings = {
8
+ type UnistylesThemeSettings = {
9
9
  initialTheme: (() => keyof UnistylesThemes) | keyof UnistylesThemes
10
10
  } | {
11
11
  adaptiveThemes: boolean
12
12
  }
13
13
 
14
+ type UnistylesSettings = UnistylesThemeSettings & {
15
+ CSSVars?: boolean
16
+ }
17
+
14
18
  export type UnistylesConfig = {
15
19
  settings?: UnistylesSettings,
16
20
  themes?: UnistylesThemes,
package/src/utils.ts CHANGED
@@ -1,20 +1,24 @@
1
+ export const isDefined = <T>(value: T): value is NonNullable<T> => value !== undefined && value !== null
2
+
1
3
  export const deepMergeObjects = <T extends Record<PropertyKey, any>>(...sources: Array<T>) => {
2
4
  const target = {} as T
3
5
 
4
- sources.forEach(source => {
5
- Object.keys(source).forEach(key => {
6
- const sourceValue = source[key]
7
- const targetValue = target[key]
6
+ sources
7
+ .filter(isDefined)
8
+ .forEach(source => {
9
+ Object.keys(source).forEach(key => {
10
+ const sourceValue = source[key]
11
+ const targetValue = target[key]
8
12
 
9
- if (Object(sourceValue) === sourceValue && Object(targetValue) === targetValue) {
10
- // @ts-expect-error - can't assign to generic
11
- target[key] = deepMergeObjects(targetValue, sourceValue)
13
+ if (Object(sourceValue) === sourceValue && Object(targetValue) === targetValue) {
14
+ // @ts-expect-error - can't assign to generic
15
+ target[key] = deepMergeObjects(targetValue, sourceValue)
12
16
 
13
- return
14
- }
17
+ return
18
+ }
15
19
 
16
- // @ts-expect-error - can't assign to generic
17
- target[key] = sourceValue
20
+ // @ts-expect-error - can't assign to generic
21
+ target[key] = sourceValue
18
22
  })
19
23
  })
20
24
 
@@ -3,8 +3,8 @@ import { hyphenate } from '../../utils'
3
3
  import type { Filters } from '../types'
4
4
  import { getObjectStyle } from './objectStyle'
5
5
  import { normalizeColor, normalizeNumericValue } from '../utils'
6
- import { UnistylesRuntime } from '../../runtime'
7
6
  import { isUnistylesMq } from '../../../mq'
7
+ import { UnistylesWeb } from '../../index'
8
8
 
9
9
  const getDropShadowStyle = (dropShadow: DropShadowValue) => {
10
10
  const { offsetX = 0, offsetY = 0, standardDeviation = 0, color = '#000' } = dropShadow
@@ -21,7 +21,7 @@ export const getFilterStyle = (filters: Array<Filters>) => {
21
21
  return []
22
22
  }
23
23
 
24
- const breakpoints = Object.keys(dropShadowValue).filter(key => Object.keys(UnistylesRuntime.breakpoints).includes(key) || isUnistylesMq(key))
24
+ const breakpoints = Object.keys(dropShadowValue).filter(key => Object.keys(UnistylesWeb.runtime.breakpoints).includes(key) || isUnistylesMq(key))
25
25
  const breakpointsDropShadow = Object.fromEntries(breakpoints.map(breakpoint => [breakpoint, getDropShadowStyle(dropShadowValue[breakpoint])]))
26
26
 
27
27
  if (breakpoints.length === 0) {
@@ -1,15 +1,15 @@
1
1
  import { keyInObject } from '../utils'
2
2
 
3
- const SKIP_STYLES = [
3
+ const SKIP_STYLES = new Set([
4
4
  'borderCurve',
5
5
  'elevation',
6
6
  'textAlignVertical',
7
7
  'includeFontPadding',
8
8
  'overlayColor',
9
9
  'tintColor'
10
- ]
10
+ ])
11
11
 
12
- const CSS_NUMBER_KEYS = [
12
+ const CSS_NUMBER_KEYS = new Set([
13
13
  'animationIterationCount',
14
14
  'borderImageOutset',
15
15
  'borderImageSlice',
@@ -53,8 +53,9 @@ const CSS_NUMBER_KEYS = [
53
53
  'strokeDashoffset',
54
54
  'strokeMiterlimit',
55
55
  'strokeOpacity',
56
- 'strokeWidth'
57
- ]
56
+ 'strokeWidth',
57
+ 'aspectRatio'
58
+ ])
58
59
 
59
60
  const convertMap = {
60
61
  marginHorizontal: (value: number) => ({
@@ -124,14 +125,14 @@ const convertMap = {
124
125
 
125
126
  const convertNumber = (key: string, value: any) => {
126
127
  if (typeof value === 'number') {
127
- return CSS_NUMBER_KEYS.includes(key, value) ? value : `${value}px`
128
+ return CSS_NUMBER_KEYS.has(key) ? value : `${value}px`
128
129
  }
129
130
 
130
131
  return value
131
132
  }
132
133
 
133
134
  export const getStyle = (key: string, value: any) => {
134
- if (SKIP_STYLES.includes(key)) {
135
+ if (SKIP_STYLES.has(key)) {
135
136
  return {}
136
137
  }
137
138
 
package/src/web/create.ts CHANGED
@@ -1,36 +1,41 @@
1
1
  import type { StyleSheetWithSuperPowers, StyleSheet } from '../types/stylesheet'
2
+ import { UnistylesWeb } from './index'
2
3
  import { assignSecrets, error, removeInlineStyles } from './utils'
3
- import { UnistylesRuntime } from './runtime'
4
4
 
5
- const useVariants = ['useVariants', () => {}]
5
+ type Variants = Record<string, string | boolean | undefined>
6
6
 
7
7
  export const create = (stylesheet: StyleSheetWithSuperPowers<StyleSheet>, id?: string) => {
8
8
  if (!id) {
9
9
  throw error('Unistyles is not initialized correctly. Please add babel plugin to your babel config.')
10
10
  }
11
11
 
12
- const computedStylesheet = typeof stylesheet === 'function'
13
- ? stylesheet(UnistylesRuntime.theme, UnistylesRuntime.miniRuntime)
14
- : stylesheet
15
-
16
- const addSecrets = (value: any, key: string, args?: Array<any>) => assignSecrets(value, {
12
+ const computedStylesheet = UnistylesWeb.registry.getComputedStylesheet(stylesheet)
13
+ const addSecrets = (value: any, key: string, args = undefined as Array<any> | undefined, variants = {} as Variants) => assignSecrets(value, {
17
14
  __uni__key: key,
18
15
  __uni__stylesheet: stylesheet,
19
16
  __uni__args: args,
20
- __uni__refs: new Set()
17
+ __uni_variants: variants
21
18
  })
22
19
 
23
- const styleSheetStyles = Object.entries(computedStylesheet).map(([key, value]) => {
24
- if (typeof value === 'function') {
25
- return [key, (...args: Array<any>) => {
26
- const result = removeInlineStyles(value(...args))
20
+ const createStyleSheetStyles = (variants?: Variants) => {
21
+ const stylesEntries = Object.entries(computedStylesheet).map(([key, value]) => {
22
+ if (typeof value === 'function') {
23
+ return [key, (...args: Array<any>) => {
24
+ const result = removeInlineStyles(value(...args))
27
25
 
28
- return addSecrets(result, key, args)
29
- }]
30
- }
26
+ return addSecrets(result, key, args, variants)
27
+ }]
28
+ }
31
29
 
32
- return [key, addSecrets(removeInlineStyles(value), key)]
33
- })
30
+ return [key, addSecrets(removeInlineStyles(value), key, undefined, variants)]
31
+ })
32
+
33
+ return Object.fromEntries(stylesEntries.concat([useVariants]))
34
+ }
35
+
36
+ const useVariants = ['useVariants', (variants: Variants) => {
37
+ return createStyleSheetStyles(variants)
38
+ }]
34
39
 
35
- return Object.fromEntries(styleSheetStyles.concat([useVariants]))
40
+ return createStyleSheetStyles()
36
41
  }
@@ -0,0 +1,58 @@
1
+ import { getMediaQuery } from '../utils'
2
+ import type { CSSState } from './state'
3
+
4
+ export const convertToCSS = (hash: string, value: Record<string, any>, state: CSSState) => {
5
+ Object.entries(value).forEach(([styleKey, styleValue]) => {
6
+ if (styleKey[0] === '_') {
7
+ const pseudoClassName = styleKey.replace('_', `${hash}:`)
8
+
9
+ Object.entries(styleValue).forEach(([pseudoStyleKey, pseudoStyleValue]) => {
10
+ if (typeof pseudoStyleValue === 'object' && pseudoStyleValue !== null) {
11
+ const allBreakpoints = Object.keys(pseudoStyleValue)
12
+ Object.entries(pseudoStyleValue).forEach(([breakpointStyleKey, breakpointStyleValue]) => {
13
+ const mediaQuery = getMediaQuery(pseudoStyleKey, allBreakpoints)
14
+
15
+ state.set({
16
+ mediaQuery,
17
+ className: pseudoClassName,
18
+ propertyKey: breakpointStyleKey,
19
+ value: breakpointStyleValue,
20
+ })
21
+ })
22
+
23
+ return
24
+ }
25
+
26
+ state.set({
27
+ className: pseudoClassName,
28
+ propertyKey: pseudoStyleKey,
29
+ value: pseudoStyleValue,
30
+ })
31
+ })
32
+
33
+ return
34
+ }
35
+
36
+ if (typeof styleValue === 'object') {
37
+ const allBreakpoints = Object.keys(styleValue)
38
+ Object.entries(styleValue).forEach(([breakpointStyleKey, breakpointStyleValue]) => {
39
+ const mediaQuery = getMediaQuery(styleKey, allBreakpoints)
40
+
41
+ state.set({
42
+ mediaQuery,
43
+ className: hash,
44
+ propertyKey: breakpointStyleKey,
45
+ value: breakpointStyleValue,
46
+ })
47
+ })
48
+
49
+ return
50
+ }
51
+
52
+ state.set({
53
+ className: hash,
54
+ propertyKey: styleKey,
55
+ value: styleValue,
56
+ })
57
+ })
58
+ }
@@ -0,0 +1 @@
1
+ export * from './state'