react-native-unistyles 3.0.0-alpha.4 → 3.0.0-alpha.41

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 (540) hide show
  1. package/README.md +7 -0
  2. package/Unistyles.podspec +1 -1
  3. package/android/CMakeLists.txt +22 -45
  4. package/android/build.gradle +16 -5
  5. package/android/src/main/cxx/NativeUnistylesModule.cpp +71 -0
  6. package/android/src/main/cxx/NativeUnistylesModule.h +42 -0
  7. package/android/src/main/cxx/cpp-adapter.cpp +8 -86
  8. package/android/src/main/java/com/unistyles/Equatable.kt +61 -0
  9. package/android/src/main/java/com/unistyles/NativePlatform+android.kt +294 -0
  10. package/android/src/main/java/com/unistyles/NativePlatform+insets.kt +152 -0
  11. package/android/src/main/java/com/unistyles/NativePlatform+listener.kt +59 -0
  12. package/android/src/main/java/com/unistyles/UnistylesModule.kt +51 -0
  13. package/android/src/main/java/com/unistyles/UnistylesPackage.kt +16 -14
  14. package/cxx/NativePlatform.h +11 -0
  15. package/cxx/common/Constants.h +4 -0
  16. package/cxx/common/Helpers.h +140 -5
  17. package/cxx/core/HostStyle.cpp +10 -6
  18. package/cxx/core/HostStyle.h +4 -0
  19. package/cxx/core/StyleSheet.h +0 -2
  20. package/cxx/core/StyleSheetRegistry.cpp +9 -17
  21. package/cxx/core/StyleSheetRegistry.h +3 -4
  22. package/cxx/core/Unistyle.h +8 -11
  23. package/cxx/core/UnistyleData.h +24 -0
  24. package/cxx/core/UnistyleWrapper.h +108 -13
  25. package/cxx/core/UnistylesCommitHook.cpp +14 -15
  26. package/cxx/core/UnistylesCommitHook.h +6 -11
  27. package/cxx/core/UnistylesCommitShadowNode.h +13 -0
  28. package/cxx/core/UnistylesMountHook.cpp +28 -0
  29. package/cxx/core/UnistylesMountHook.h +27 -0
  30. package/cxx/core/UnistylesRegistry.cpp +123 -83
  31. package/cxx/core/UnistylesRegistry.h +16 -14
  32. package/cxx/core/UnistylesState.cpp +29 -8
  33. package/cxx/core/UnistylesState.h +5 -2
  34. package/cxx/hybridObjects/HybridNavigationBar.cpp +0 -4
  35. package/cxx/hybridObjects/HybridNavigationBar.h +3 -4
  36. package/cxx/hybridObjects/HybridShadowRegistry.cpp +19 -11
  37. package/cxx/hybridObjects/HybridStatusBar.cpp +0 -4
  38. package/cxx/hybridObjects/HybridStatusBar.h +3 -4
  39. package/cxx/hybridObjects/HybridStyleSheet.cpp +154 -23
  40. package/cxx/hybridObjects/HybridStyleSheet.h +27 -5
  41. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +96 -14
  42. package/cxx/hybridObjects/HybridUnistylesRuntime.h +19 -3
  43. package/cxx/parser/Parser.cpp +249 -177
  44. package/cxx/parser/Parser.h +12 -15
  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 +9 -1
  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/index.js +20 -0
  62. package/lib/commonjs/components/index.js.map +1 -0
  63. package/lib/commonjs/components/useMedia.js +59 -0
  64. package/lib/commonjs/components/useMedia.js.map +1 -0
  65. package/lib/commonjs/components/useMedia.web.js +43 -0
  66. package/lib/commonjs/components/useMedia.web.js.map +1 -0
  67. package/lib/commonjs/core/createUnistylesComponent.js +79 -0
  68. package/lib/commonjs/core/createUnistylesComponent.js.map +1 -0
  69. package/lib/commonjs/core/createUnistylesComponent.native.js +82 -0
  70. package/lib/commonjs/core/createUnistylesComponent.native.js.map +1 -0
  71. package/lib/commonjs/core/index.js +13 -0
  72. package/lib/commonjs/core/index.js.map +1 -0
  73. package/lib/commonjs/index.js +21 -11
  74. package/lib/commonjs/index.js.map +1 -1
  75. package/lib/commonjs/mq.js +25 -12
  76. package/lib/commonjs/mq.js.map +1 -1
  77. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js +1 -0
  78. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
  79. package/lib/commonjs/specs/NavigtionBar/index.js +0 -15
  80. package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
  81. package/lib/commonjs/specs/ShadowRegistry/index.js +10 -6
  82. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  83. package/lib/commonjs/specs/StatusBar/index.js +0 -5
  84. package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
  85. package/lib/commonjs/specs/StyleSheet/index.js +1 -0
  86. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  87. package/lib/commonjs/specs/UnistylesRuntime/index.js +1 -3
  88. package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
  89. package/lib/commonjs/specs/index.js +7 -0
  90. package/lib/commonjs/specs/index.js.map +1 -1
  91. package/lib/commonjs/specs/index.web.js +1 -1
  92. package/lib/commonjs/types/stylesheet.js.map +1 -1
  93. package/lib/commonjs/utils.js +26 -0
  94. package/lib/commonjs/utils.js.map +1 -0
  95. package/lib/commonjs/web/convert/index.js +79 -0
  96. package/lib/commonjs/web/convert/index.js.map +1 -0
  97. package/lib/commonjs/web/convert/module.d.js +2 -0
  98. package/lib/commonjs/web/convert/module.d.js.map +1 -0
  99. package/lib/commonjs/web/convert/object/boxShadow.js +59 -0
  100. package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -0
  101. package/lib/commonjs/web/convert/object/filter.js +42 -0
  102. package/lib/commonjs/web/convert/object/filter.js.map +1 -0
  103. package/lib/commonjs/web/convert/object/index.js +39 -0
  104. package/lib/commonjs/web/convert/object/index.js.map +1 -0
  105. package/lib/commonjs/web/convert/object/objectStyle.js +56 -0
  106. package/lib/commonjs/web/convert/object/objectStyle.js.map +1 -0
  107. package/lib/commonjs/web/convert/object/transform.js +27 -0
  108. package/lib/commonjs/web/convert/object/transform.js.map +1 -0
  109. package/lib/commonjs/web/convert/pseudo.js +10 -0
  110. package/lib/commonjs/web/convert/pseudo.js.map +1 -0
  111. package/lib/commonjs/web/convert/shadow/boxShadow.js +62 -0
  112. package/lib/commonjs/web/convert/shadow/boxShadow.js.map +1 -0
  113. package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js +38 -0
  114. package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
  115. package/lib/commonjs/web/convert/shadow/index.js +28 -0
  116. package/lib/commonjs/web/convert/shadow/index.js.map +1 -0
  117. package/lib/commonjs/web/convert/shadow/textShadow.js +59 -0
  118. package/lib/commonjs/web/convert/shadow/textShadow.js.map +1 -0
  119. package/lib/commonjs/web/convert/style.js +93 -0
  120. package/lib/commonjs/web/convert/style.js.map +1 -0
  121. package/lib/commonjs/web/convert/types.js +9 -0
  122. package/lib/commonjs/web/convert/types.js.map +1 -0
  123. package/lib/commonjs/web/convert/utils.js +59 -0
  124. package/lib/commonjs/web/convert/utils.js.map +1 -0
  125. package/lib/commonjs/web/create.js +49 -0
  126. package/lib/commonjs/web/create.js.map +1 -0
  127. package/lib/commonjs/web/index.js +60 -0
  128. package/lib/commonjs/web/index.js.map +1 -0
  129. package/lib/commonjs/web/listener.js +61 -0
  130. package/lib/commonjs/web/listener.js.map +1 -0
  131. package/lib/commonjs/web/mock.js +27 -0
  132. package/lib/commonjs/web/mock.js.map +1 -0
  133. package/lib/commonjs/web/registry.js +172 -0
  134. package/lib/commonjs/web/registry.js.map +1 -0
  135. package/lib/commonjs/web/runtime.js +173 -0
  136. package/lib/commonjs/web/runtime.js.map +1 -0
  137. package/lib/commonjs/web/shadowRegistry.js +142 -0
  138. package/lib/commonjs/web/shadowRegistry.js.map +1 -0
  139. package/lib/commonjs/web/state.js +73 -0
  140. package/lib/commonjs/web/state.js.map +1 -0
  141. package/lib/commonjs/web/utils/common.js +39 -0
  142. package/lib/commonjs/web/utils/common.js.map +1 -0
  143. package/lib/commonjs/web/utils/index.js +28 -0
  144. package/lib/commonjs/web/utils/index.js.map +1 -0
  145. package/lib/commonjs/web/utils/unistyle.js +85 -0
  146. package/lib/commonjs/web/utils/unistyle.js.map +1 -0
  147. package/lib/commonjs/web/variants/getVariants.js +39 -0
  148. package/lib/commonjs/web/variants/getVariants.js.map +1 -0
  149. package/lib/commonjs/web/variants/index.js +28 -0
  150. package/lib/commonjs/web/variants/index.js.map +1 -0
  151. package/lib/commonjs/web/variants/useVariants.js +59 -0
  152. package/lib/commonjs/web/variants/useVariants.js.map +1 -0
  153. package/lib/module/components/Display.js +13 -0
  154. package/lib/module/components/Display.js.map +1 -0
  155. package/lib/module/components/Hide.js +13 -0
  156. package/lib/module/components/Hide.js.map +1 -0
  157. package/lib/module/components/index.js +5 -0
  158. package/lib/module/components/index.js.map +1 -0
  159. package/lib/module/components/useMedia.js +54 -0
  160. package/lib/module/components/useMedia.js.map +1 -0
  161. package/lib/module/components/useMedia.web.js +38 -0
  162. package/lib/module/components/useMedia.web.js.map +1 -0
  163. package/lib/module/core/createUnistylesComponent.js +72 -0
  164. package/lib/module/core/createUnistylesComponent.js.map +1 -0
  165. package/lib/module/core/createUnistylesComponent.native.js +75 -0
  166. package/lib/module/core/createUnistylesComponent.native.js.map +1 -0
  167. package/lib/module/core/index.js +4 -0
  168. package/lib/module/core/index.js.map +1 -0
  169. package/lib/module/index.js +2 -9
  170. package/lib/module/index.js.map +1 -1
  171. package/lib/module/mq.js +21 -11
  172. package/lib/module/mq.js.map +1 -1
  173. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js +1 -0
  174. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
  175. package/lib/module/specs/NavigtionBar/index.js +0 -10
  176. package/lib/module/specs/NavigtionBar/index.js.map +1 -1
  177. package/lib/module/specs/ShadowRegistry/index.js +10 -6
  178. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  179. package/lib/module/specs/StatusBar/index.js +1 -6
  180. package/lib/module/specs/StatusBar/index.js.map +1 -1
  181. package/lib/module/specs/StyleSheet/index.js +1 -0
  182. package/lib/module/specs/StyleSheet/index.js.map +1 -1
  183. package/lib/module/specs/UnistylesRuntime/index.js +1 -3
  184. package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
  185. package/lib/module/specs/index.js +2 -1
  186. package/lib/module/specs/index.js.map +1 -1
  187. package/lib/module/specs/index.web.js +1 -1
  188. package/lib/module/specs/index.web.js.map +1 -1
  189. package/lib/module/types/stylesheet.js.map +1 -1
  190. package/lib/module/utils.js +21 -0
  191. package/lib/module/utils.js.map +1 -0
  192. package/lib/module/web/convert/index.js +74 -0
  193. package/lib/module/web/convert/index.js.map +1 -0
  194. package/lib/module/web/convert/module.d.js +2 -0
  195. package/lib/module/web/convert/module.d.js.map +1 -0
  196. package/lib/module/web/convert/object/boxShadow.js +54 -0
  197. package/lib/module/web/convert/object/boxShadow.js.map +1 -0
  198. package/lib/module/web/convert/object/filter.js +37 -0
  199. package/lib/module/web/convert/object/filter.js.map +1 -0
  200. package/lib/module/web/convert/object/index.js +6 -0
  201. package/lib/module/web/convert/object/index.js.map +1 -0
  202. package/lib/module/web/convert/object/objectStyle.js +51 -0
  203. package/lib/module/web/convert/object/objectStyle.js.map +1 -0
  204. package/lib/module/web/convert/object/transform.js +22 -0
  205. package/lib/module/web/convert/object/transform.js.map +1 -0
  206. package/lib/module/web/convert/pseudo.js +5 -0
  207. package/lib/module/web/convert/pseudo.js.map +1 -0
  208. package/lib/module/web/convert/shadow/boxShadow.js +57 -0
  209. package/lib/module/web/convert/shadow/boxShadow.js.map +1 -0
  210. package/lib/module/web/convert/shadow/getShadowBreakpoints.js +33 -0
  211. package/lib/module/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
  212. package/lib/module/web/convert/shadow/index.js +5 -0
  213. package/lib/module/web/convert/shadow/index.js.map +1 -0
  214. package/lib/module/web/convert/shadow/textShadow.js +54 -0
  215. package/lib/module/web/convert/shadow/textShadow.js.map +1 -0
  216. package/lib/module/web/convert/style.js +88 -0
  217. package/lib/module/web/convert/style.js.map +1 -0
  218. package/lib/module/web/convert/types.js +5 -0
  219. package/lib/module/web/convert/types.js.map +1 -0
  220. package/lib/module/web/convert/utils.js +45 -0
  221. package/lib/module/web/convert/utils.js.map +1 -0
  222. package/lib/module/web/create.js +44 -0
  223. package/lib/module/web/create.js.map +1 -0
  224. package/lib/module/web/index.js +26 -0
  225. package/lib/module/web/index.js.map +1 -0
  226. package/lib/module/web/listener.js +57 -0
  227. package/lib/module/web/listener.js.map +1 -0
  228. package/lib/module/web/mock.js +23 -0
  229. package/lib/module/web/mock.js.map +1 -0
  230. package/lib/module/web/registry.js +168 -0
  231. package/lib/module/web/registry.js.map +1 -0
  232. package/lib/module/web/runtime.js +169 -0
  233. package/lib/module/web/runtime.js.map +1 -0
  234. package/lib/module/web/shadowRegistry.js +138 -0
  235. package/lib/module/web/shadowRegistry.js.map +1 -0
  236. package/lib/module/web/state.js +69 -0
  237. package/lib/module/web/state.js.map +1 -0
  238. package/lib/module/web/utils/common.js +28 -0
  239. package/lib/module/web/utils/common.js.map +1 -0
  240. package/lib/module/web/utils/index.js +5 -0
  241. package/lib/module/web/utils/index.js.map +1 -0
  242. package/lib/module/web/utils/unistyle.js +72 -0
  243. package/lib/module/web/utils/unistyle.js.map +1 -0
  244. package/lib/module/web/variants/getVariants.js +34 -0
  245. package/lib/module/web/variants/getVariants.js.map +1 -0
  246. package/lib/module/web/variants/index.js +5 -0
  247. package/lib/module/web/variants/index.js.map +1 -0
  248. package/lib/module/web/variants/useVariants.js +54 -0
  249. package/lib/module/web/variants/useVariants.js.map +1 -0
  250. package/lib/typescript/src/components/Display.d.ts +7 -0
  251. package/lib/typescript/src/components/Display.d.ts.map +1 -0
  252. package/lib/typescript/src/components/Hide.d.ts +7 -0
  253. package/lib/typescript/src/components/Hide.d.ts.map +1 -0
  254. package/lib/typescript/src/components/index.d.ts +3 -0
  255. package/lib/typescript/src/components/index.d.ts.map +1 -0
  256. package/lib/typescript/src/components/useMedia.d.ts +6 -0
  257. package/lib/typescript/src/components/useMedia.d.ts.map +1 -0
  258. package/lib/typescript/src/components/useMedia.web.d.ts +6 -0
  259. package/lib/typescript/src/components/useMedia.web.d.ts.map +1 -0
  260. package/lib/typescript/src/core/createUnistylesComponent.d.ts +8 -0
  261. package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +1 -0
  262. package/lib/typescript/src/core/createUnistylesComponent.native.d.ts +8 -0
  263. package/lib/typescript/src/core/createUnistylesComponent.native.d.ts.map +1 -0
  264. package/lib/typescript/src/core/index.d.ts +2 -0
  265. package/lib/typescript/src/core/index.d.ts.map +1 -0
  266. package/lib/typescript/src/index.d.ts +3 -0
  267. package/lib/typescript/src/index.d.ts.map +1 -1
  268. package/lib/typescript/src/mq.d.ts +8 -0
  269. package/lib/typescript/src/mq.d.ts.map +1 -1
  270. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts +7 -5
  271. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
  272. package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts +0 -1
  273. package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts.map +1 -1
  274. package/lib/typescript/src/specs/NavigtionBar/index.d.ts +1 -10
  275. package/lib/typescript/src/specs/NavigtionBar/index.d.ts.map +1 -1
  276. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +4 -4
  277. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  278. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +3 -0
  279. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
  280. package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts +0 -1
  281. package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts.map +1 -1
  282. package/lib/typescript/src/specs/StatusBar/index.d.ts +2 -4
  283. package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
  284. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts +3 -1
  285. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts.map +1 -1
  286. package/lib/typescript/src/specs/StyleSheet/index.d.ts +3 -1
  287. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  288. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts +1 -1
  289. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
  290. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +3 -1
  291. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
  292. package/lib/typescript/src/specs/index.d.ts +4 -2
  293. package/lib/typescript/src/specs/index.d.ts.map +1 -1
  294. package/lib/typescript/src/specs/index.web.d.ts +1 -1
  295. package/lib/typescript/src/specs/index.web.d.ts.map +1 -1
  296. package/lib/typescript/src/types/breakpoints.d.ts +11 -11
  297. package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
  298. package/lib/typescript/src/types/common.d.ts +1 -0
  299. package/lib/typescript/src/types/common.d.ts.map +1 -1
  300. package/lib/typescript/src/types/index.d.ts +1 -1
  301. package/lib/typescript/src/types/index.d.ts.map +1 -1
  302. package/lib/typescript/src/types/stylesheet.d.ts +6 -4
  303. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
  304. package/lib/typescript/src/types/variants.d.ts +4 -1
  305. package/lib/typescript/src/types/variants.d.ts.map +1 -1
  306. package/lib/typescript/src/utils.d.ts +2 -0
  307. package/lib/typescript/src/utils.d.ts.map +1 -0
  308. package/lib/typescript/src/web/convert/index.d.ts +3 -0
  309. package/lib/typescript/src/web/convert/index.d.ts.map +1 -0
  310. package/lib/typescript/src/web/convert/object/boxShadow.d.ts +9 -0
  311. package/lib/typescript/src/web/convert/object/boxShadow.d.ts.map +1 -0
  312. package/lib/typescript/src/web/convert/object/filter.d.ts +3 -0
  313. package/lib/typescript/src/web/convert/object/filter.d.ts.map +1 -0
  314. package/lib/typescript/src/web/convert/object/index.d.ts +4 -0
  315. package/lib/typescript/src/web/convert/object/index.d.ts.map +1 -0
  316. package/lib/typescript/src/web/convert/object/objectStyle.d.ts +5 -0
  317. package/lib/typescript/src/web/convert/object/objectStyle.d.ts.map +1 -0
  318. package/lib/typescript/src/web/convert/object/transform.d.ts +3 -0
  319. package/lib/typescript/src/web/convert/object/transform.d.ts.map +1 -0
  320. package/lib/typescript/src/web/convert/pseudo.d.ts +6 -0
  321. package/lib/typescript/src/web/convert/pseudo.d.ts.map +1 -0
  322. package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts +8 -0
  323. package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts.map +1 -0
  324. package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts +2 -0
  325. package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts.map +1 -0
  326. package/lib/typescript/src/web/convert/shadow/index.d.ts +3 -0
  327. package/lib/typescript/src/web/convert/shadow/index.d.ts.map +1 -0
  328. package/lib/typescript/src/web/convert/shadow/textShadow.d.ts +8 -0
  329. package/lib/typescript/src/web/convert/shadow/textShadow.d.ts.map +1 -0
  330. package/lib/typescript/src/web/convert/style.d.ts +2 -0
  331. package/lib/typescript/src/web/convert/style.d.ts.map +1 -0
  332. package/lib/typescript/{web → src/web}/convert/types.d.ts +8 -2
  333. package/lib/typescript/src/web/convert/types.d.ts.map +1 -0
  334. package/lib/typescript/src/web/convert/utils.d.ts +12 -0
  335. package/lib/typescript/src/web/convert/utils.d.ts.map +1 -0
  336. package/lib/typescript/src/web/create.d.ts +1443 -0
  337. package/lib/typescript/{web → src/web}/create.d.ts.map +1 -1
  338. package/lib/typescript/src/web/index.d.ts +1459 -0
  339. package/lib/typescript/{web → src/web}/index.d.ts.map +1 -1
  340. package/lib/typescript/{web/listener → src/web}/listener.d.ts +5 -2
  341. package/lib/typescript/src/web/listener.d.ts.map +1 -0
  342. package/lib/typescript/src/web/mock.d.ts +5 -0
  343. package/lib/typescript/src/web/mock.d.ts.map +1 -0
  344. package/lib/typescript/src/web/registry.d.ts +24 -0
  345. package/lib/typescript/src/web/registry.d.ts.map +1 -0
  346. package/lib/typescript/{web → src/web}/runtime.d.ts +11 -10
  347. package/lib/typescript/src/web/runtime.d.ts.map +1 -0
  348. package/lib/typescript/src/web/shadowRegistry.d.ts +17 -0
  349. package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -0
  350. package/lib/typescript/src/web/state.d.ts +18 -0
  351. package/lib/typescript/src/web/state.d.ts.map +1 -0
  352. package/lib/typescript/src/web/utils/common.d.ts +8 -0
  353. package/lib/typescript/src/web/utils/common.d.ts.map +1 -0
  354. package/lib/typescript/src/web/utils/index.d.ts +3 -0
  355. package/lib/typescript/src/web/utils/index.d.ts.map +1 -0
  356. package/lib/typescript/src/web/utils/unistyle.d.ts +20 -0
  357. package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -0
  358. package/lib/typescript/src/web/variants/getVariants.d.ts +3 -0
  359. package/lib/typescript/src/web/variants/getVariants.d.ts.map +1 -0
  360. package/lib/typescript/src/web/variants/index.d.ts +3 -0
  361. package/lib/typescript/src/web/variants/index.d.ts.map +1 -0
  362. package/lib/typescript/src/web/variants/useVariants.d.ts +3 -0
  363. package/lib/typescript/src/web/variants/useVariants.d.ts.map +1 -0
  364. package/nitrogen/generated/android/c++/JColorScheme.hpp +1 -1
  365. package/nitrogen/generated/android/c++/JFunc_void_UnistylesNativeMiniRuntime.hpp +57 -0
  366. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +69 -0
  367. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +35 -34
  368. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +15 -6
  369. package/nitrogen/generated/android/c++/JOrientation.hpp +1 -1
  370. package/nitrogen/generated/android/c++/JUnistyleDependency.hpp +4 -1
  371. package/nitrogen/generated/android/c++/JUnistylesNativeMiniRuntime.hpp +9 -7
  372. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Dimensions.kt +1 -0
  373. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/{Func_void_std__vector_UnistyleDependency_.kt → Func_void_UnistylesNativeMiniRuntime.kt} +6 -5
  374. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.kt +46 -0
  375. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +25 -13
  376. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Insets.kt +1 -0
  377. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistyleDependency.kt +2 -1
  378. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +3 -1
  379. package/nitrogen/generated/android/unistyles+autolinking.cmake +13 -1
  380. package/nitrogen/generated/android/unistyles+autolinking.gradle +2 -0
  381. package/nitrogen/generated/android/{UnistylesOnLoad.cpp → unistylesOnLoad.cpp} +6 -4
  382. package/nitrogen/generated/android/{UnistylesOnLoad.hpp → unistylesOnLoad.hpp} +1 -1
  383. package/nitrogen/generated/ios/Unistyles+autolinking.rb +6 -4
  384. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +25 -0
  385. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +73 -38
  386. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +1 -30
  387. package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +8 -8
  388. package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +4 -16
  389. package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +156 -115
  390. package/nitrogen/generated/ios/swift/UnistyleDependency.swift +4 -0
  391. package/nitrogen/generated/ios/swift/UnistylesNativeMiniRuntime.swift +16 -5
  392. package/nitrogen/generated/shared/c++/ColorScheme.hpp +2 -2
  393. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.cpp +2 -2
  394. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +6 -3
  395. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.cpp +0 -1
  396. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +3 -1
  397. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.cpp +1 -0
  398. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +5 -0
  399. package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +3 -0
  400. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.cpp +0 -1
  401. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +3 -1
  402. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.cpp +2 -1
  403. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +10 -4
  404. package/nitrogen/generated/shared/c++/Orientation.hpp +2 -2
  405. package/nitrogen/generated/shared/c++/UnistyleDependency.hpp +2 -1
  406. package/nitrogen/generated/shared/c++/UnistylesCxxMiniRuntime.hpp +10 -9
  407. package/nitrogen/generated/shared/c++/UnistylesNativeMiniRuntime.hpp +9 -8
  408. package/package.json +20 -30
  409. package/plugin/common.js +31 -3
  410. package/plugin/index.js +107 -18
  411. package/plugin/ref.js +140 -14
  412. package/plugin/style.js +208 -22
  413. package/plugin/stylesheet.js +53 -3
  414. package/plugin/variants.js +33 -0
  415. package/src/components/Display.tsx +12 -0
  416. package/src/components/Hide.tsx +12 -0
  417. package/src/components/index.ts +2 -0
  418. package/src/components/useMedia.ts +64 -0
  419. package/src/components/useMedia.web.ts +47 -0
  420. package/src/core/createUnistylesComponent.native.tsx +83 -0
  421. package/src/core/createUnistylesComponent.tsx +84 -0
  422. package/src/core/index.ts +1 -0
  423. package/src/index.ts +3 -12
  424. package/src/mq.ts +27 -9
  425. package/src/specs/NativePlatform/NativePlatform.nitro.ts +7 -5
  426. package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.ts +0 -1
  427. package/src/specs/NavigtionBar/index.ts +1 -25
  428. package/src/specs/ShadowRegistry/index.ts +16 -10
  429. package/src/specs/ShadowRegistry/types.ts +4 -1
  430. package/src/specs/StatusBar/UnistylesStatusBar.nitro.ts +0 -1
  431. package/src/specs/StatusBar/index.ts +2 -12
  432. package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.ts +4 -1
  433. package/src/specs/StyleSheet/index.ts +6 -1
  434. package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +1 -1
  435. package/src/specs/UnistylesRuntime/index.ts +5 -4
  436. package/src/specs/index.ts +6 -2
  437. package/src/specs/index.web.ts +1 -1
  438. package/src/types/breakpoints.ts +25 -13
  439. package/src/types/common.ts +1 -0
  440. package/src/types/index.ts +1 -1
  441. package/src/types/stylesheet.ts +7 -5
  442. package/src/types/variants.ts +7 -1
  443. package/src/utils.ts +22 -0
  444. package/{web → src/web}/convert/index.ts +25 -25
  445. package/src/web/convert/object/boxShadow.ts +55 -0
  446. package/src/web/convert/object/filter.ts +39 -0
  447. package/src/web/convert/object/index.ts +3 -0
  448. package/src/web/convert/object/objectStyle.ts +69 -0
  449. package/src/web/convert/object/transform.ts +24 -0
  450. package/src/web/convert/pseudo.ts +137 -0
  451. package/src/web/convert/shadow/boxShadow.ts +50 -0
  452. package/src/web/convert/shadow/getShadowBreakpoints.ts +34 -0
  453. package/src/web/convert/shadow/index.ts +2 -0
  454. package/src/web/convert/shadow/textShadow.ts +48 -0
  455. package/{web → src/web}/convert/style.ts +61 -10
  456. package/{web → src/web}/convert/types.ts +9 -2
  457. package/{web → src/web}/convert/utils.ts +11 -5
  458. package/src/web/create.ts +48 -0
  459. package/{web → src/web}/index.ts +4 -3
  460. package/src/web/listener.ts +63 -0
  461. package/{web → src/web}/mock.ts +3 -14
  462. package/src/web/registry.ts +215 -0
  463. package/{web → src/web}/runtime.ts +32 -21
  464. package/src/web/shadowRegistry.ts +145 -0
  465. package/src/web/state.ts +94 -0
  466. package/src/web/utils/common.ts +45 -0
  467. package/src/web/utils/index.ts +2 -0
  468. package/src/web/utils/unistyle.ts +108 -0
  469. package/src/web/variants/getVariants.ts +42 -0
  470. package/src/web/variants/index.ts +2 -0
  471. package/src/web/variants/useVariants.ts +65 -0
  472. package/android/src/main/cxx/helpers.cpp +0 -105
  473. package/android/src/main/cxx/helpers.h +0 -16
  474. package/android/src/main/cxx/platform.cpp +0 -170
  475. package/android/src/main/cxx/platform.h +0 -20
  476. package/lib/typescript/example/App.d.ts +0 -4
  477. package/lib/typescript/example/App.d.ts.map +0 -1
  478. package/lib/typescript/example/unistyles.d.ts +0 -63
  479. package/lib/typescript/example/unistyles.d.ts.map +0 -1
  480. package/lib/typescript/expo-example/App.d.ts +0 -4
  481. package/lib/typescript/expo-example/App.d.ts.map +0 -1
  482. package/lib/typescript/expo-example/unistyles.d.ts +0 -63
  483. package/lib/typescript/expo-example/unistyles.d.ts.map +0 -1
  484. package/lib/typescript/web/convert/boxShadow.d.ts +0 -3
  485. package/lib/typescript/web/convert/boxShadow.d.ts.map +0 -1
  486. package/lib/typescript/web/convert/breakpoint.d.ts +0 -3
  487. package/lib/typescript/web/convert/breakpoint.d.ts.map +0 -1
  488. package/lib/typescript/web/convert/index.d.ts +0 -4
  489. package/lib/typescript/web/convert/index.d.ts.map +0 -1
  490. package/lib/typescript/web/convert/shadow.d.ts +0 -2
  491. package/lib/typescript/web/convert/shadow.d.ts.map +0 -1
  492. package/lib/typescript/web/convert/style.d.ts +0 -3
  493. package/lib/typescript/web/convert/style.d.ts.map +0 -1
  494. package/lib/typescript/web/convert/textShadow.d.ts +0 -3
  495. package/lib/typescript/web/convert/textShadow.d.ts.map +0 -1
  496. package/lib/typescript/web/convert/transform.d.ts +0 -5
  497. package/lib/typescript/web/convert/transform.d.ts.map +0 -1
  498. package/lib/typescript/web/convert/types.d.ts.map +0 -1
  499. package/lib/typescript/web/convert/utils.d.ts +0 -8
  500. package/lib/typescript/web/convert/utils.d.ts.map +0 -1
  501. package/lib/typescript/web/create.d.ts +0 -2449
  502. package/lib/typescript/web/index.d.ts +0 -2464
  503. package/lib/typescript/web/listener/index.d.ts +0 -2
  504. package/lib/typescript/web/listener/index.d.ts.map +0 -1
  505. package/lib/typescript/web/listener/listener.d.ts.map +0 -1
  506. package/lib/typescript/web/mock.d.ts +0 -14
  507. package/lib/typescript/web/mock.d.ts.map +0 -1
  508. package/lib/typescript/web/mq.d.ts +0 -4
  509. package/lib/typescript/web/mq.d.ts.map +0 -1
  510. package/lib/typescript/web/pseudo.d.ts +0 -4
  511. package/lib/typescript/web/pseudo.d.ts.map +0 -1
  512. package/lib/typescript/web/registry.d.ts +0 -12
  513. package/lib/typescript/web/registry.d.ts.map +0 -1
  514. package/lib/typescript/web/runtime.d.ts.map +0 -1
  515. package/lib/typescript/web/state.d.ts +0 -24
  516. package/lib/typescript/web/state.d.ts.map +0 -1
  517. package/lib/typescript/web/useVariants.d.ts +0 -3
  518. package/lib/typescript/web/useVariants.d.ts.map +0 -1
  519. package/lib/typescript/web/utils.d.ts +0 -18
  520. package/lib/typescript/web/utils.d.ts.map +0 -1
  521. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency_.hpp +0 -60
  522. package/plugin/__tests__/dependencies.spec.js +0 -360
  523. package/plugin/__tests__/ref.spec.js +0 -991
  524. package/plugin/__tests__/stylesheet.spec.js +0 -396
  525. package/web/convert/boxShadow.ts +0 -72
  526. package/web/convert/breakpoint.ts +0 -21
  527. package/web/convert/shadow.ts +0 -68
  528. package/web/convert/textShadow.ts +0 -69
  529. package/web/convert/transform.ts +0 -89
  530. package/web/create.ts +0 -102
  531. package/web/listener/index.ts +0 -1
  532. package/web/listener/listener.ts +0 -33
  533. package/web/mq.ts +0 -19
  534. package/web/pseudo.ts +0 -11
  535. package/web/registry.ts +0 -41
  536. package/web/state.ts +0 -148
  537. package/web/useVariants.ts +0 -99
  538. package/web/utils.ts +0 -95
  539. /package/nitrogen/generated/android/{UnistylesOnLoad.kt → unistylesOnLoad.kt} +0 -0
  540. /package/{web → src/web}/convert/module.d.ts +0 -0
@@ -0,0 +1 @@
1
+ export { createUnistylesComponent } from './createUnistylesComponent'
package/src/index.ts CHANGED
@@ -1,15 +1,6 @@
1
- import React from 'react'
2
-
3
1
  export * from './specs'
4
2
  export { mq } from './mq'
5
3
  export type { UnistylesThemes, UnistylesBreakpoints } from './global'
6
-
7
- // todo verify true min version
8
- const minReactVersionRequiredByUnistyles = '18.3.1'
9
-
10
- if (React.version < minReactVersionRequiredByUnistyles) {
11
- throw new Error(`
12
- You are using an outdated version of React (${React.version}).
13
- Unistyles requires at least React ${minReactVersionRequiredByUnistyles}.
14
- `)
15
- }
4
+ export { createUnistylesComponent } from './core'
5
+ export type { UnistylesVariants } from './types'
6
+ export * from './components'
package/src/mq.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  import type { Nullable } from './types'
2
2
  import type { UnistylesBreakpoints } from './global'
3
+ import { UnistylesRuntime } from './specs'
4
+
5
+ const IS_UNISTYLES_REGEX = /:([hw])\[(\d+)(?:,\s*(\d+|Infinity))?]/
6
+ const UNISTYLES_WIDTH_REGEX = /:(w)\[(\d+)(?:,\s*(\d+|Infinity))?]/
7
+ const UNISTYLES_HEIGHT_REGEX = /:(h)\[(\d+)(?:,\s*(\d+|Infinity))?]/
3
8
 
4
9
  type MQValue = keyof UnistylesBreakpoints | number
5
10
 
@@ -29,16 +34,8 @@ const getMQValue = (value: Nullable<MQValue>) => {
29
34
  return 0
30
35
  }
31
36
 
32
- // todo take it from js
33
- const breakpoints = {
34
- xs: 0,
35
- sm: 300,
36
- md: 500,
37
- lg: 800,
38
- xl: 1200
39
- }
37
+ const breakpoints = UnistylesRuntime.breakpoints
40
38
 
41
- // @ts-ignore
42
39
  return breakpoints[value] ?? 0
43
40
  }
44
41
 
@@ -64,3 +61,24 @@ export const mq: MQHandler = {
64
61
  }
65
62
  })
66
63
  }
64
+
65
+ export const parseMq = (mq: string) => {
66
+ const [, width, fromW, toW] = UNISTYLES_WIDTH_REGEX.exec(mq) || []
67
+ const [, height, fromH, toH] = UNISTYLES_HEIGHT_REGEX.exec(mq) || []
68
+
69
+ return {
70
+ minWidth: !width || fromW === 'Infinity' ? undefined : Number(fromW),
71
+ maxWidth: !width || toW === 'Infinity' ? undefined : Number(toW),
72
+ minHeight: !height || fromH === 'Infinity' ? undefined : Number(fromH),
73
+ maxHeight: !height || toH === 'Infinity' ? undefined : Number(toH),
74
+ }
75
+ }
76
+
77
+ export const isUnistylesMq = (mq: string) => IS_UNISTYLES_REGEX.test(mq)
78
+
79
+ export const isValidMq = (parsedMQ: ReturnType<typeof parseMq>) => {
80
+ const isWidthValid = parsedMQ.minWidth === undefined || parsedMQ.maxWidth === undefined || parsedMQ.minWidth <= parsedMQ.maxWidth
81
+ const isHeightValid = parsedMQ.minHeight === undefined || parsedMQ.maxHeight === undefined || parsedMQ.minHeight <= parsedMQ.maxHeight
82
+
83
+ return isWidthValid && isHeightValid
84
+ }
@@ -18,7 +18,8 @@ export enum UnistyleDependency {
18
18
  PixelRatio = 10,
19
19
  FontScale = 11,
20
20
  StatusBar = 12,
21
- NavigationBar = 13
21
+ NavigationBar = 13,
22
+ Ime = 14
22
23
  }
23
24
 
24
25
  export interface UnistylesNativeMiniRuntime {
@@ -31,7 +32,8 @@ export interface UnistylesNativeMiniRuntime {
31
32
  readonly rtl: boolean
32
33
  readonly statusBar: Dimensions,
33
34
  readonly navigationBar: Dimensions
34
- readonly orientation: Orientation
35
+ readonly isPortrait: boolean,
36
+ readonly isLandscape: boolean
35
37
  }
36
38
 
37
39
  // represents any native API that can communicate with Unistyles
@@ -49,13 +51,13 @@ export interface NativePlatform extends HybridObject<{ ios: 'swift', android: 'k
49
51
  getPrefersRtlDirection(): boolean,
50
52
 
51
53
  setRootViewBackgroundColor(color: number): void,
52
- setNavigationBarBackgroundColor?(color: number): void,
53
54
  setNavigationBarHidden?(isHidden: boolean): void,
54
55
  setStatusBarHidden(isHidden: boolean): void,
55
- setStatusBarBackgroundColor?(color: number): void,
56
56
  setImmersiveMode(isEnabled: boolean): void,
57
57
 
58
58
  // private
59
59
  getMiniRuntime(): UnistylesNativeMiniRuntime,
60
- registerPlatformListener(callback: (dependencies: Array<UnistyleDependency>) => void): void
60
+ registerPlatformListener(callback: (dependencies: Array<UnistyleDependency>, miniRuntime: UnistylesNativeMiniRuntime) => void): void,
61
+ registerImeListener(callback: (miniRuntime: UnistylesNativeMiniRuntime) => void): void,
62
+ unregisterPlatformListeners(): void
61
63
  }
@@ -5,6 +5,5 @@ export interface UnistylesNavigationBar extends HybridObject<{ ios: 'c++', andro
5
5
  readonly width: number,
6
6
  readonly height: number,
7
7
 
8
- setBackgroundColor(color: number): void,
9
8
  setHidden(isHidden: boolean): void
10
9
  }
@@ -1,25 +1 @@
1
- import { processColor } from 'react-native'
2
- import type { UnistylesNavigationBar as UnistylesNavigationBarSpec } from './UnistylesNavigationBar.nitro'
3
- import type { Color } from '../types'
4
-
5
- interface PrivateUnistylesNavigationBar extends Omit<UnistylesNavigationBarSpec, 'setBackgroundColor'> {
6
- setBackgroundColor(color?: string): void,
7
- _setBackgroundColor(color?: Color): void
8
- }
9
-
10
- export const attachNavigationBarJSMethods = (hybridObject: UnistylesNavigationBar) => {
11
- const privateHybrid = hybridObject as PrivateUnistylesNavigationBar
12
-
13
- privateHybrid._setBackgroundColor = hybridObject.setBackgroundColor
14
- hybridObject.setBackgroundColor = (color?: string) => {
15
- const parsedColor = processColor(color)
16
-
17
- privateHybrid._setBackgroundColor(parsedColor as number)
18
- }
19
- }
20
-
21
- type PrivateMethods =
22
- | '_setBackgroundColor'
23
- | 'dispose'
24
-
25
- export type UnistylesNavigationBar = Omit<PrivateUnistylesNavigationBar, PrivateMethods>
1
+ export type { UnistylesNavigationBar } from './UnistylesNavigationBar.nitro'
@@ -4,11 +4,11 @@ import type { ShadowNode, Unistyle, ViewHandle } from './types'
4
4
 
5
5
  interface ShadowRegistry extends UnistylesShadowRegistrySpec {
6
6
  // Babel API
7
- add(handle?: ViewHandle, style?: Unistyle): void,
8
- remove(handle?: ViewHandle, style?: Unistyle): void,
7
+ add(handle?: ViewHandle, styles?: Array<Unistyle>, variants?: Record<string, string | boolean>, args?: Array<Array<any>>, uniquePressableId?: string): void,
8
+ remove(handle?: ViewHandle): void,
9
9
  // JSI
10
- link(node: ShadowNode, style: Unistyle): void,
11
- unlink(node: ShadowNode, style: Unistyle): void
10
+ link(node: ShadowNode, styles?: Array<Unistyle>, variants?: Record<string, string | boolean>, args?: Array<Array<any>>, uniquePressableId?: string): void,
11
+ unlink(node: ShadowNode): void
12
12
  }
13
13
 
14
14
  const HybridShadowRegistry = NitroModules.createHybridObject<ShadowRegistry>('UnistylesShadowRegistry')
@@ -26,20 +26,26 @@ const findShadowNodeForHandle = (handle: ViewHandle) => {
26
26
  return node
27
27
  }
28
28
 
29
- HybridShadowRegistry.add = (handle, style) => {
30
- if (!handle || !style?.__unid) {
29
+ HybridShadowRegistry.add = (handle, styles, variants, args, uniquePressableId) => {
30
+ // virtualized nodes can be null
31
+ if (!handle || !styles || !Array.isArray(styles)) {
31
32
  return
32
33
  }
33
34
 
34
- HybridShadowRegistry.link(findShadowNodeForHandle(handle), style)
35
+ // filter Reanimated styles and styles that are undefined
36
+ const filteredStyles = styles
37
+ .filter(style => !style?.initial?.updater)
38
+ .filter(Boolean)
39
+
40
+ HybridShadowRegistry.link(findShadowNodeForHandle(handle), filteredStyles, variants ?? {}, args ?? [], uniquePressableId)
35
41
  }
36
42
 
37
- HybridShadowRegistry.remove = (handle, style) => {
38
- if (!handle || !style?.__unid) {
43
+ HybridShadowRegistry.remove = handle => {
44
+ if (!handle) {
39
45
  return
40
46
  }
41
47
 
42
- HybridShadowRegistry.unlink(findShadowNodeForHandle(handle), style)
48
+ HybridShadowRegistry.unlink(findShadowNodeForHandle(handle))
43
49
  }
44
50
 
45
51
  type PrivateMethods =
@@ -25,5 +25,8 @@ export type ViewHandle = {
25
25
  }
26
26
 
27
27
  export type Unistyle = {
28
- __unid?: number
28
+ __unid?: number,
29
+ initial?: {
30
+ updater?: () => void
31
+ }
29
32
  }
@@ -5,6 +5,5 @@ export interface UnistylesStatusBar extends HybridObject<{ ios: 'c++', android:
5
5
  readonly width: number,
6
6
  readonly height: number,
7
7
 
8
- setBackgroundColor(color: number): void,
9
8
  setHidden(isHidden: boolean): void,
10
9
  }
@@ -1,6 +1,6 @@
1
- import { processColor, StatusBar as NativeStatusBar } from 'react-native'
1
+ import { StatusBar as NativeStatusBar } from 'react-native'
2
2
  import type { UnistylesStatusBar as UnistylesStatusBarSpec } from './UnistylesStatusBar.nitro'
3
- import { type Color, StatusBarStyle } from '../types'
3
+ import { StatusBarStyle } from '../types'
4
4
 
5
5
  export type StatusBarHiddenAnimation = 'none' | 'fade' | 'slide'
6
6
 
@@ -8,8 +8,6 @@ interface PrivateUnistylesStatusBar extends Omit<UnistylesStatusBarSpec, 'setBac
8
8
  setStyle(style: StatusBarStyle, animated?: boolean): void,
9
9
  setHidden(isHidden: boolean, animation?: StatusBarHiddenAnimation): void,
10
10
  _setHidden(isHidden: boolean, animation?: StatusBarHiddenAnimation): void,
11
- setBackgroundColor(color?: string): void,
12
- _setBackgroundColor(color?: Color): void
13
11
  }
14
12
 
15
13
  export const attachStatusBarJSMethods = (hybridObject: UnistylesStatusBar) => {
@@ -31,17 +29,9 @@ export const attachStatusBarJSMethods = (hybridObject: UnistylesStatusBar) => {
31
29
  NativeStatusBar.setHidden(isHidden, animation)
32
30
  privateHybrid._setHidden(isHidden)
33
31
  }
34
-
35
- privateHybrid._setBackgroundColor = hybridObject.setBackgroundColor
36
- hybridObject.setBackgroundColor = (color?: string) => {
37
- const parsedColor = processColor(color)
38
-
39
- privateHybrid._setBackgroundColor(parsedColor as number)
40
- }
41
32
  }
42
33
 
43
34
  type PrivateMethods =
44
- | '_setBackgroundColor'
45
35
  | '_setHidden'
46
36
  | 'dispose'
47
37
 
@@ -1,6 +1,9 @@
1
1
  import type { HybridObject } from 'react-native-nitro-modules'
2
+ import { UnistyleDependency } from '../NativePlatform'
2
3
 
3
4
  export interface UnistylesStyleSheet extends HybridObject<{ ios: 'c++', android: 'c++' }> {
4
5
  readonly hairlineWidth: number
5
- readonly __unid: number
6
+ readonly unid: number
7
+
8
+ addChangeListener(onChanged: (dependencies: Array<UnistyleDependency>) => void): () => void
6
9
  }
@@ -23,6 +23,7 @@ export interface UnistylesStyleSheet extends UnistylesStyleSheetSpec {
23
23
  flatten: typeof NativeStyleSheetType.flatten,
24
24
 
25
25
  // overridden methods
26
+ init(): void,
26
27
  create: CreateUnistylesStyleSheet,
27
28
  configure(config: UnistylesConfig): void,
28
29
  jsMethods: {
@@ -41,4 +42,8 @@ HybridUnistylesStyleSheet.jsMethods = {
41
42
  processColor
42
43
  }
43
44
 
44
- export const StyleSheet = HybridUnistylesStyleSheet as Omit<UnistylesStyleSheet, 'jsMethods'>
45
+ HybridUnistylesStyleSheet.init()
46
+
47
+ type PrivateMethods = 'jsMethods' | 'addChangeListener' | 'init'
48
+
49
+ export const StyleSheet = HybridUnistylesStyleSheet as Omit<UnistylesStyleSheet, PrivateMethods>
@@ -10,7 +10,6 @@ type Orientation = 'portrait' | 'landscape'
10
10
  export interface UnistylesCxxMiniRuntime extends UnistylesNativeMiniRuntime {
11
11
  readonly themeName?: string,
12
12
  readonly breakpoint?: string,
13
- readonly orientation: Orientation,
14
13
  readonly hasAdaptiveThemes: boolean,
15
14
  }
16
15
 
@@ -31,6 +30,7 @@ export interface UnistylesRuntime extends HybridObject<{ ios: 'c++', android: 'c
31
30
  readonly themeName?: string,
32
31
  readonly contentSizeCategory: string,
33
32
  readonly breakpoint?: string,
33
+ readonly breakpoints: Record<string, number>,
34
34
  readonly insets: Insets,
35
35
  readonly orientation: Orientation,
36
36
  readonly pixelRatio: number,
@@ -3,9 +3,10 @@ import { NitroModules } from 'react-native-nitro-modules'
3
3
  import type { UnistylesRuntime as UnistylesRuntimeSpec, UnistylesMiniRuntime } from './UnistylesRuntime.nitro'
4
4
  import type { AppBreakpoint, AppTheme, AppThemeName, Color, ColorScheme, Orientation } from '../types'
5
5
  import { attachStatusBarJSMethods, type UnistylesStatusBar } from '../StatusBar'
6
- import { attachNavigationBarJSMethods, type UnistylesNavigationBar } from '../NavigtionBar'
7
- import type { AndroidContentSizeCategory, IOSContentSizeCategory } from '../../types'
6
+ import { type UnistylesNavigationBar } from '../NavigtionBar'
7
+ import type { AndroidContentSizeCategory, IOSContentSizeCategory, UnistylesTheme } from '../../types'
8
8
  import { isIOS } from '../../common'
9
+ import type { UnistylesThemes } from '../../global'
9
10
 
10
11
  export interface UnistylesRuntimePrivate extends Omit<UnistylesRuntimeSpec, 'setRootViewBackgroundColor'> {
11
12
  readonly colorScheme: ColorScheme,
@@ -18,6 +19,7 @@ export interface UnistylesRuntimePrivate extends Omit<UnistylesRuntimeSpec, 'set
18
19
  statusBar: UnistylesStatusBar,
19
20
  navigationBar: UnistylesNavigationBar,
20
21
 
22
+ getTheme(themeName?: keyof UnistylesThemes): UnistylesTheme,
21
23
  setTheme(themeName: AppThemeName): void
22
24
  updateTheme(themeName: AppThemeName, updater: (currentTheme: AppTheme) => AppTheme): void,
23
25
  setRootViewBackgroundColor(color?: string): void,
@@ -45,7 +47,7 @@ HybridUnistylesRuntime.navigationBar = HybridUnistylesRuntime.createHybridNaviga
45
47
  HybridUnistylesRuntime._setRootViewBackgroundColor = HybridUnistylesRuntime.setRootViewBackgroundColor
46
48
 
47
49
  HybridUnistylesRuntime.setRootViewBackgroundColor = (color?: string) => {
48
- const parsedColor = processColor(color)
50
+ const parsedColor = processColor(color) ?? 0
49
51
 
50
52
  HybridUnistylesRuntime._setRootViewBackgroundColor(parsedColor as number)
51
53
  }
@@ -55,7 +57,6 @@ if (isIOS) {
55
57
  }
56
58
 
57
59
  attachStatusBarJSMethods(HybridUnistylesRuntime.statusBar)
58
- attachNavigationBarJSMethods(HybridUnistylesRuntime.navigationBar)
59
60
 
60
61
  export const Runtime = HybridUnistylesRuntime as UnistylesRuntime
61
62
 
@@ -2,14 +2,17 @@ import './TurboUnistyles'
2
2
 
3
3
  import { Runtime } from './UnistylesRuntime'
4
4
  import { StyleSheet } from './StyleSheet'
5
+ import type { UnistylesStyleSheet } from './StyleSheet'
5
6
  import { UnistylesShadowRegistry } from './ShadowRegistry'
6
7
  import type { UnistylesMiniRuntime } from './UnistylesRuntime'
7
8
  import { StatusBarStyle, ColorScheme, Orientation } from './types'
9
+ import { UnistyleDependency } from './NativePlatform'
8
10
 
9
11
  export {
10
12
  StatusBarStyle,
11
13
  ColorScheme,
12
- Orientation
14
+ Orientation,
15
+ UnistyleDependency
13
16
  }
14
17
 
15
18
  export {
@@ -19,5 +22,6 @@ export {
19
22
  }
20
23
 
21
24
  export type {
22
- UnistylesMiniRuntime
25
+ UnistylesMiniRuntime,
26
+ UnistylesStyleSheet
23
27
  }
@@ -2,4 +2,4 @@ import type { ReactElement } from 'react'
2
2
 
3
3
  export const getSSRUnistyles = () => [] as Array<ReactElement>
4
4
 
5
- export * from '../../web'
5
+ export * from '../web'
@@ -17,45 +17,57 @@ type ExtractBreakpoints<T> = T extends object
17
17
  }
18
18
  : T
19
19
 
20
- type ParseNestedObject<T> = T extends (...args: infer A) => infer R
21
- ? (...args: A) => ParseNestedObject<R>
20
+ type ParseNestedObject<T, ShouldFlatten> = T extends (...args: infer A) => infer R
21
+ ? (...args: A) => ParseNestedObject<R, false>
22
22
  : T extends object
23
23
  ? T extends { variants: infer R, compoundVariants: infer C }
24
- ? ParseVariants<FlattenVariants<R>> & FlattenCompoundVariants<C> & ParseNestedObject<Omit<T, 'variants' | 'compoundVariants'>>
24
+ // // if intersection of Base, Variants and Compound Variants is never, then flatten variants and compound variants to generic "string"
25
+ ? (ParseVariants<FlattenVariants<R, false>> & FlattenCompoundVariants<C, false> & ParseNestedObject<Omit<T, 'variants' | 'compoundVariants'>, false>) extends never
26
+ ? ParseVariants<FlattenVariants<R, true>> & FlattenCompoundVariants<C, true> & ParseNestedObject<Omit<T, 'variants' | 'compoundVariants'>, false>
27
+ : ParseVariants<FlattenVariants<R, false>> & FlattenCompoundVariants<C, false> & ParseNestedObject<Omit<T, 'variants' | 'compoundVariants'>, false>
25
28
  : T extends { variants: infer R }
26
- ? ParseVariants<FlattenVariants<R>> & ParseNestedObject<Omit<T, 'variants'>>
29
+ // if intersection of Base and Variants is never, then flatten variants to generic "string"
30
+ ? (ParseVariants<FlattenVariants<R, false>> & ParseNestedObject<Omit<T, 'variants'>, false>) extends never
31
+ ? ParseVariants<FlattenVariants<R, true>> & ParseNestedObject<Omit<T, 'variants'>, false>
32
+ : ParseVariants<FlattenVariants<R, false>> & ParseNestedObject<Omit<T, 'variants'>, false>
27
33
  : T extends { compoundVariants: object }
28
- ? ParseNestedObject<Omit<T, 'compoundVariants'>>
34
+ ? ParseNestedObject<Omit<T, 'compoundVariants'>, false>
29
35
  : {
30
36
  [K in keyof T as K extends '_web' ? never : K]: T[K] extends object
31
37
  ? T[K] extends OpaqueColorValue
32
38
  ? ColorValue
33
39
  : ExtractBreakpoints<T[K]>
34
- : T[K]
40
+ : T[K] extends string
41
+ ? ShouldFlatten extends true
42
+ ? string
43
+ : T[K]
44
+ : T[K]
35
45
  }
36
46
  : T
37
47
 
38
- type FlattenVariants<T> = T extends object
48
+ type FlattenVariants<T, ShouldFlatten> = T extends object
39
49
  ? {
40
50
  [K in keyof T]: T[K] extends object
41
51
  ? {
42
52
  [key in keyof T[K]]: T[K][key] extends object
43
- ? ParseNestedObject<T[K][key]>
53
+ ? ParseNestedObject<T[K][key], ShouldFlatten>
44
54
  : never
45
55
  }
46
56
  : never
47
57
  }
48
58
  : never
49
59
 
50
- type FlattenCompoundVariants<T> = T extends Array<infer _>
51
- ? FlattenCompoundVariants<T[number]>
60
+ type FlattenCompoundVariants<T, ShouldFlatten> = T extends Array<infer _>
61
+ ? FlattenCompoundVariants<T[number], ShouldFlatten>
52
62
  : T extends { styles: infer S }
53
- ? ParseNestedObject<S>
63
+ ? ParseNestedObject<S, ShouldFlatten>
54
64
  : never
55
65
 
56
66
  type ParseVariants<T> = T extends object
57
67
  ? T[keyof T] extends object
58
- ? UnionToIntersection<ParseVariants<T[keyof T]>>
68
+ ? UnionToIntersection<ParseVariants<T[keyof T]>> extends never
69
+ ? ParseVariants<T[keyof T]>
70
+ : UnionToIntersection<ParseVariants<T[keyof T]>>
59
71
  : T
60
72
  : T
61
73
 
@@ -63,7 +75,7 @@ type UnionToIntersection<U> =
63
75
  (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never
64
76
 
65
77
  type ParseStyleKeys<T> = T extends object
66
- ? { [K in keyof T]: ParseNestedObject<T[K]> }
78
+ ? { [K in keyof T]: ParseNestedObject<T[K], false> }
67
79
  : never
68
80
 
69
81
  export type ReactNativeStyleSheet<T> = ParseStyleKeys<SafeReturnType<T>>
@@ -1,3 +1,4 @@
1
1
  export type Optional<T> = T | undefined
2
2
  export type Nullable<T> = T | null
3
3
  export type SafeReturnType<T> = T extends (...args: any) => infer R ? R : T
4
+ export type PartialBy<T, K> = Omit<T, K & keyof T> & Partial<Pick<T, K & keyof T>>
@@ -17,5 +17,5 @@ export type {
17
17
  UnistyleImage
18
18
  } from './stylesheet'
19
19
  export type { ReactNativeStyleSheet } from './breakpoints'
20
- export type { ExtractVariantNames } from './variants'
20
+ export type { ExtractVariantNames, UnistylesVariants } from './variants'
21
21
  export { AndroidContentSizeCategory, IOSContentSizeCategory, WebContentSizeCategory } from './accessibility'
@@ -1,14 +1,14 @@
1
- import type { ImageStyle, TextStyle, ViewStyle } from 'react-native'
1
+ import type { BoxShadowValue, ImageStyle, TextStyle, ViewStyle, FilterFunction } from 'react-native'
2
2
  import type { ShadowOffset, TransformStyles, UnistylesTheme } from './core'
3
3
  import type { UnistylesBreakpoints } from '../global'
4
4
  import type { UnistylesMiniRuntime } from '../specs'
5
5
  import type { ReactNativeStyleSheet } from './breakpoints'
6
6
  import type { ExtractVariantNames } from './variants'
7
7
  import type { CSSProperties } from 'react'
8
- import type { Pseudo } from '../../web/pseudo'
8
+ import type { Pseudo } from '../web/convert/pseudo'
9
9
 
10
10
  // these props are treated differently to nest breakpoints and media queries
11
- type NestedKeys = 'shadowOffset' | 'transform' | 'textShadowOffset'
11
+ type NestedKeys = 'shadowOffset' | 'transform' | 'textShadowOffset' | 'boxShadow' | 'filter'
12
12
 
13
13
  export type UnistyleView = Omit<ViewStyle, NestedKeys>
14
14
  export type UnistyleText = Omit<TextStyle, NestedKeys>
@@ -17,7 +17,9 @@ export type UnistyleImage = Omit<ImageStyle, NestedKeys>
17
17
  type UnistyleNestedStyles = {
18
18
  shadowOffset?: ToDeepUnistyles<ShadowOffset>,
19
19
  textShadowOffset?: ToDeepUnistyles<ShadowOffset>,
20
- transform?: Array<ToDeepUnistyles<TransformStyles>>
20
+ transform?: Array<ToDeepUnistyles<TransformStyles>>,
21
+ boxShadow?: Array<ToDeepUnistyles<BoxShadowValue>> | string,
22
+ filter?: Array<ToDeepUnistyles<FilterFunction>> | string
21
23
  }
22
24
 
23
25
  type VariantsObject = {
@@ -27,7 +29,7 @@ type VariantsObject = {
27
29
  }
28
30
 
29
31
  type CustomClassName = {
30
- _css?: string | Array<string>
32
+ _classNames?: string | Array<string>
31
33
  }
32
34
 
33
35
  type CompoundVariant = {
@@ -20,4 +20,10 @@ type ExtractSubVariantKeys<T> = T extends object
20
20
 
21
21
  type ExtractVariant<T> = T extends { variants: infer V }
22
22
  ? { [key in keyof V]?: ExtractSubVariantKeys<V[key]> }
23
- : T
23
+ : never
24
+
25
+ export type UnistylesVariants<ST> = ST extends { useVariants: infer V }
26
+ ? V extends (variants: infer T) => void
27
+ ? T
28
+ : never
29
+ : never
package/src/utils.ts ADDED
@@ -0,0 +1,22 @@
1
+ export const deepMergeObjects = <T extends Record<PropertyKey, any>>(...sources: Array<T>) => {
2
+ const target = {} as T
3
+
4
+ sources.forEach(source => {
5
+ Object.keys(source).forEach(key => {
6
+ const sourceValue = source[key]
7
+ const targetValue = target[key]
8
+
9
+ if (Object(sourceValue) == sourceValue && Object(targetValue) === targetValue) {
10
+ // @ts-expect-error - can't assign to generic
11
+ target[key] = deepMergeObjects(targetValue, sourceValue)
12
+
13
+ return
14
+ }
15
+
16
+ // @ts-expect-error - can't assign to generic
17
+ target[key] = sourceValue
18
+ })
19
+ })
20
+
21
+ return target
22
+ }
@@ -1,39 +1,31 @@
1
- import type { NestedCSSProperties } from 'typestyle/lib/types'
2
- import type { UnistylesValues } from '../../src/types'
3
- import { media } from 'typestyle'
4
- import { isPseudo } from '../pseudo'
5
- import { convertBreakpoint } from './breakpoint'
1
+ import type { UnistylesValues } from '../../types'
2
+ import { isPseudo } from './pseudo'
6
3
  import { getStyle } from './style'
7
- import { deepMergeObjects } from '../utils'
8
- import { getTransformStyle } from './transform'
9
- import { isBoxShadow, isTextShadow, isTransform } from './utils'
10
- import { getTextShadowStyle } from './textShadow'
11
- import { getBoxShadowStyle } from './boxShadow'
4
+ import { deepMergeObjects } from '../../utils'
5
+ import { getTransformStyle, getBoxShadow, getFilterStyle } from './object'
6
+ import { isShadow, isFilter, isTextShadow, isTransform, isBoxShadow } from './utils'
7
+ import { getTextShadowStyle, getBoxShadowStyle } from './shadow'
12
8
 
13
- export const convertToTypeStyle = (value: UnistylesValues) => {
9
+ export const convertUnistyles = (value: UnistylesValues) => {
14
10
  // Flag to mark if textShadow is already created
15
11
  let hasTextShadow = false
16
12
  // Flag to mark if boxShadow is already created
17
- let hasBoxShadow = false
13
+ let hasShadow = false
18
14
 
19
15
  const stylesArray = Object.entries({
20
16
  ...value,
21
17
  ...value._web
22
18
  }).flatMap(([unistylesKey, unistylesValue]) => {
23
19
  // Keys to omit
24
- if (['_css', '_web', 'variants', 'compoundVariants', 'uni__dependencies'].includes(unistylesKey)) {
20
+ if (['_classNames', '_web', 'variants', 'compoundVariants', 'uni__dependencies', '__unistyles-secrets__'].includes(unistylesKey) || unistylesKey.startsWith('variant-')) {
25
21
  return []
26
22
  }
27
23
 
28
24
  // Pseudo classes :hover, :before etc.
29
25
  if (isPseudo(unistylesKey)) {
30
- const typestyleValues = convertToTypeStyle(unistylesValue as UnistylesValues)
26
+ const flattenValues = convertUnistyles(unistylesValue as UnistylesValues)
31
27
 
32
- return {
33
- $nest: {
34
- [unistylesKey.replace('_', '&:')]: typestyleValues
35
- }
36
- }
28
+ return { [unistylesKey]: flattenValues }
37
29
  }
38
30
 
39
31
  // Text shadow
@@ -47,17 +39,25 @@ export const convertToTypeStyle = (value: UnistylesValues) => {
47
39
  return getTextShadowStyle(value)
48
40
  }
49
41
 
50
- // Box shadow
51
- if (isBoxShadow(unistylesKey)) {
52
- if (hasBoxShadow) {
42
+ // RN shadows
43
+ if (isShadow(unistylesKey)) {
44
+ if (hasShadow) {
53
45
  return []
54
46
  }
55
47
 
56
- hasBoxShadow = true
48
+ hasShadow = true
57
49
 
58
50
  return getBoxShadowStyle(value)
59
51
  }
60
52
 
53
+ if (isFilter(unistylesKey, unistylesValue)) {
54
+ return getFilterStyle(unistylesValue)
55
+ }
56
+
57
+ if (isBoxShadow(unistylesKey, unistylesValue)) {
58
+ return getBoxShadow(unistylesValue)
59
+ }
60
+
61
61
  // Transforms
62
62
  if (isTransform(unistylesKey, unistylesValue)) {
63
63
  return getTransformStyle(unistylesValue)
@@ -66,13 +66,13 @@ export const convertToTypeStyle = (value: UnistylesValues) => {
66
66
  // Breakpoints
67
67
  if (typeof unistylesValue === 'object' && unistylesValue !== null) {
68
68
  return Object.entries(unistylesValue).map(([breakpointKey, breakpointValue]) => {
69
- return media(convertBreakpoint(breakpointKey), getStyle(unistylesKey, breakpointValue))
69
+ return { [breakpointKey]: getStyle(unistylesKey, breakpointValue) }
70
70
  })
71
71
  }
72
72
 
73
73
  // Regular styles
74
74
  return getStyle(unistylesKey, unistylesValue)
75
- }) as Array<NestedCSSProperties>
75
+ }) as Array<Record<string, any>>
76
76
 
77
77
  return deepMergeObjects(...stylesArray)
78
78
  }