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,45 @@
1
+ export const reduceObject = <TObj extends Record<string, any>, TReducer>(
2
+ obj: TObj,
3
+ reducer: (value: TObj[keyof TObj], key: keyof TObj) => TReducer,
4
+ ) => Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, reducer(value as TObj[keyof TObj], key)])) as { [K in keyof TObj]: TReducer }
5
+
6
+ export const keyInObject = <T extends Record<string, any>>(obj: T, key: PropertyKey): key is keyof T => key in obj
7
+
8
+ export const isServer = () => typeof window === 'undefined'
9
+
10
+ export const warn = (message: string) => console.warn(`🦄 [react-native-unistyles] ${message}`)
11
+
12
+ export const equal = <T>(a: T, b: T) => {
13
+ if (Object.is(a, b)) {
14
+ return true
15
+ }
16
+
17
+ if (
18
+ typeof a !== 'object'
19
+ || a === null
20
+ || typeof b !== 'object'
21
+ || b === null
22
+ ) {
23
+ return false
24
+ }
25
+
26
+ const keysA = Object.keys(a) as Array<keyof T>
27
+
28
+ if (keysA.length !== Object.keys(b).length) {
29
+ return false
30
+ }
31
+
32
+ return keysA.every(key => Object.is(a[key], b[key]) && Object.prototype.hasOwnProperty.call(b, key))
33
+ }
34
+
35
+ export const generateHash = (value: any) => {
36
+ const str = JSON.stringify(value)
37
+ let hasher = 5381
38
+ let length = str.length
39
+
40
+ while (length--) hasher = (hasher * 33) ^ str.charCodeAt(length)
41
+
42
+ return `unistyles-${(hasher >>> 0).toString(36)}`
43
+ }
44
+
45
+ export const hyphenate = (propertyName: string) => propertyName.replace(/[A-Z]/g, (m: string) => `-${m.toLowerCase()}`)
@@ -0,0 +1,2 @@
1
+ export * from './common'
2
+ export * from './unistyle'
@@ -0,0 +1,108 @@
1
+ import type { UnistyleDependency } from '../../specs/NativePlatform'
2
+ import { ColorScheme, Orientation } from '../../specs/types'
3
+ import type { StyleSheet, StyleSheetWithSuperPowers, UnistylesValues } from '../../types/stylesheet'
4
+ import { isUnistylesMq, parseMq } from '../../mq'
5
+ import { UnistylesState } from '../state'
6
+ import { keyInObject, reduceObject } from './common'
7
+
8
+ export const schemeToTheme = (scheme: ColorScheme) => {
9
+ switch (scheme) {
10
+ case ColorScheme.Dark:
11
+ return 'dark'
12
+ case ColorScheme.Light:
13
+ default:
14
+ return 'light'
15
+ }
16
+ }
17
+
18
+ export const hexToRGBA = (hex: string, opacity: number) => hex
19
+ .replace('#', '')
20
+ .split(/(?=(?:..)*$)/)
21
+ .map(x => parseInt(x, 16))
22
+ .filter(num => !isNaN(num))
23
+ .reduce((acc, color) => `${acc}${color},`, 'rgba(')
24
+ .concat(`${opacity})`)
25
+
26
+ export type UnistyleSecrets = {
27
+ __uni__stylesheet: StyleSheetWithSuperPowers<StyleSheet>,
28
+ __uni__key: string,
29
+ __uni__refs: Set<HTMLElement>
30
+ __uni__variants: Record<string, any>
31
+ __uni__args?: Array<any>
32
+ }
33
+
34
+ export const assignSecrets = <T>(object: T, secrets: UnistyleSecrets) => {
35
+ // @ts-expect-error - assign secrets to object
36
+ object[`__uni__secrets__${Math.random().toString(16).slice(2)}`] = secrets
37
+
38
+ return object
39
+ }
40
+
41
+ export const extractSecrets = (object: any) => {
42
+ const secrets = Object.entries(object).reduce((acc, [key, value]) => {
43
+ if (key.startsWith('__uni__secrets__')) {
44
+ acc.push(value as UnistyleSecrets)
45
+ }
46
+
47
+ return acc
48
+ }, [] as Array<UnistyleSecrets>)
49
+
50
+ return secrets
51
+ }
52
+
53
+ export const getStyles = (values: UnistylesValues) => {
54
+ const returnValue = {}
55
+
56
+ Object.defineProperties(returnValue, reduceObject(values, value => ({
57
+ value,
58
+ enumerable: false,
59
+ configurable: true
60
+ })))
61
+
62
+ return returnValue
63
+ }
64
+
65
+ export const isInDocument = (element: HTMLElement) => document.body.contains(element)
66
+
67
+ export const extractMediaQueryValue = (query: string) => {
68
+ const [_, px] = query.match(/(\d+)px/) ?? []
69
+
70
+ if (!px) {
71
+ return undefined
72
+ }
73
+
74
+ const value = Number(px)
75
+
76
+ return isNaN(value) ? undefined : value
77
+ }
78
+
79
+ export const getMediaQuery = (query: string) => {
80
+ if (Object.values(Orientation).includes(query as Orientation)) {
81
+ return `(orientation: ${query})`
82
+ }
83
+
84
+ if (isUnistylesMq(query)) {
85
+ const { minWidth, maxWidth, minHeight, maxHeight } = parseMq(query)
86
+
87
+ return [
88
+ minWidth ? `(min-width: ${minWidth}px)` : undefined,
89
+ maxWidth ? `(max-width: ${maxWidth}px)` : undefined,
90
+ minHeight ? `(min-height: ${minHeight}px)` : undefined,
91
+ maxHeight ? `(max-height: ${maxHeight}px)` : undefined
92
+ ].filter(Boolean).join(' and ')
93
+ }
94
+
95
+ const minWidth = UnistylesState.breakpoints && keyInObject(UnistylesState.breakpoints, query) ? UnistylesState.breakpoints[query] : undefined
96
+
97
+ return `(min-width: ${minWidth ?? 0}px)`
98
+ }
99
+
100
+ export const extractUnistyleDependencies = (value: any) => {
101
+ if (!value) {
102
+ return []
103
+ }
104
+
105
+ const dependencies: Array<UnistyleDependency> = keyInObject(value, 'uni__dependencies') ? value.uni__dependencies : []
106
+
107
+ return Array.isArray(dependencies) ? dependencies : []
108
+ }
@@ -0,0 +1,42 @@
1
+ import type { ReactNativeStyleSheet, StyleSheet } from '../../types'
2
+ import { deepMergeObjects } from '../../utils'
3
+
4
+ type StylesWithVariants = {
5
+ variants: Record<string, any>,
6
+ compoundVariants?: Array<Record<string, any> & {
7
+ styles: Record<string, any>
8
+ }>
9
+ }
10
+ const hasVariants = <T extends object>(value: [string, T]): value is [string, T & StylesWithVariants] => 'variants' in value[1]
11
+
12
+ export const getVariants = (styles: ReactNativeStyleSheet<StyleSheet>, selectedVariants: Record<string, any>) => {
13
+ return Object.entries(styles)
14
+ .filter(hasVariants)
15
+ .filter(([_key, { variants }]) => Object.keys(variants).some(variant => variant in variants))
16
+ .map(([key, { variants, compoundVariants = [] }]) => {
17
+ const variantStyles = Object.entries(variants).flatMap(([variant, styles]) => {
18
+ const selectedVariant = selectedVariants[variant]
19
+ const selectedVariantStyles = styles[selectedVariant] ?? styles['default']
20
+
21
+ if (!selectedVariantStyles) {
22
+ return []
23
+ }
24
+
25
+ return selectedVariantStyles
26
+ })
27
+
28
+ const compoundVariantStyles = compoundVariants.flatMap(compoundVariant => {
29
+ const { styles, ...conditions } = compoundVariant
30
+
31
+ if (Object.entries(conditions).some(([variant, value]) => String(selectedVariants[variant]) !== String(value))) {
32
+ return []
33
+ }
34
+
35
+ return styles
36
+ })
37
+
38
+ const mergedVariantStyles = deepMergeObjects(...variantStyles, ...compoundVariantStyles)
39
+
40
+ return [key, mergedVariantStyles] as const
41
+ })
42
+ }
@@ -0,0 +1,2 @@
1
+ export * from './useVariants'
2
+ export * from './getVariants'
@@ -0,0 +1,65 @@
1
+ import { useMemo, useRef, useState } from 'react'
2
+ import type { ReactNativeStyleSheet, StyleSheet } from '../../types'
3
+ import { equal, keyInObject, reduceObject } from '../utils'
4
+ import { getVariants } from './getVariants'
5
+
6
+ export const createUseVariants = (styles: ReactNativeStyleSheet<StyleSheet>, setSelectedVariants: (variants: Record<string, any>) => void) => {
7
+ const useVariants = (selectedVariants: Record<string, any>) => {
8
+ const [selectedVariantStylesMap] = useState(() => new Map<string, Record<string, any>>())
9
+ const lastSelectedVariantsRef = useRef<Record<string, any>>()
10
+ // Variable that determines if variants have changed and we need to recalculate styles
11
+ const variantsChanged = !equal(lastSelectedVariantsRef.current, selectedVariants)
12
+
13
+ if (variantsChanged) {
14
+ lastSelectedVariantsRef.current = selectedVariants
15
+ setSelectedVariants(selectedVariants)
16
+ }
17
+
18
+ const combinedVariantStyles = useMemo(() => {
19
+ const result = getVariants(styles, selectedVariants)
20
+
21
+ result.forEach(([key, value]) => {
22
+ selectedVariantStylesMap.set(key, value)
23
+ })
24
+
25
+ return result
26
+ }, [lastSelectedVariantsRef.current])
27
+
28
+ combinedVariantStyles.forEach(([key]) => {
29
+ const styleEntry = styles[key]
30
+
31
+ if (!styleEntry) {
32
+ return
33
+ }
34
+
35
+ const selectedVariantStyles = selectedVariantStylesMap.get(key)
36
+
37
+ Object.defineProperties(styleEntry, reduceObject(selectedVariantStyles ?? {}, value => ({
38
+ value,
39
+ enumerable: false,
40
+ configurable: true
41
+ })))
42
+
43
+ // Add __uni__variants to static styles
44
+ Object.keys(styleEntry).forEach(key => {
45
+ if (!key.startsWith('__uni__secrets__')) {
46
+ return
47
+ }
48
+
49
+ const secret = keyInObject(styleEntry, key) ? styleEntry[key] : undefined
50
+
51
+ if (!secret) {
52
+ return
53
+ }
54
+
55
+ Object.defineProperty(secret, '__uni__variants', {
56
+ value: selectedVariants
57
+ })
58
+ })
59
+ })
60
+ }
61
+
62
+ Object.defineProperty(styles, 'useVariants', {
63
+ value: useVariants
64
+ })
65
+ }
@@ -1,105 +0,0 @@
1
- #include "helpers.h"
2
- #include "UnistylesRuntime.h"
3
-
4
- Dimensions jobjectToDimensions(JNIEnv *env, jobject dimensionObj) {
5
- jclass dimensionClass = env->FindClass("com/unistyles/Dimensions");
6
- jfieldID widthFieldID = env->GetFieldID(dimensionClass, "width", "I");
7
- jfieldID heightFieldID = env->GetFieldID(dimensionClass, "height", "I");
8
-
9
- int width = env->GetIntField(dimensionObj, widthFieldID);
10
- int height = env->GetIntField(dimensionObj, heightFieldID);
11
-
12
- env->DeleteLocalRef(dimensionClass);
13
-
14
- return Dimensions{width, height};
15
- }
16
-
17
- Screen jobjectToScreen(JNIEnv *env, jobject screenObj) {
18
- jclass screenClass = env->FindClass("com/unistyles/Screen");
19
- jfieldID widthFieldID = env->GetFieldID(screenClass, "width", "I");
20
- jfieldID heightFieldID = env->GetFieldID(screenClass, "height", "I");
21
- jfieldID pixelRatioFieldID = env->GetFieldID(screenClass, "pixelRatio", "F");
22
- jfieldID scaleFieldID = env->GetFieldID(screenClass, "fontScale", "F");
23
-
24
- int width = env->GetIntField(screenObj, widthFieldID);
25
- int height = env->GetIntField(screenObj, heightFieldID);
26
- float pixelRatio = env->GetFloatField(screenObj, pixelRatioFieldID);
27
- float fontScale = env->GetFloatField(screenObj, scaleFieldID);
28
-
29
- env->DeleteLocalRef(screenClass);
30
-
31
- return Screen{width, height, pixelRatio, fontScale};
32
- }
33
-
34
- Insets jobjectToInsets(JNIEnv *env, jobject insetsObj) {
35
- jclass insetsClass = env->FindClass("com/unistyles/Insets");
36
- jfieldID leftFieldID = env->GetFieldID(insetsClass, "left", "I");
37
- jfieldID topFieldID = env->GetFieldID(insetsClass, "top", "I");
38
- jfieldID rightFieldID = env->GetFieldID(insetsClass, "right", "I");
39
- jfieldID bottomFieldID = env->GetFieldID(insetsClass, "bottom", "I");
40
-
41
- int left = env->GetIntField(insetsObj, leftFieldID);
42
- int top = env->GetIntField(insetsObj, topFieldID);
43
- int right = env->GetIntField(insetsObj, rightFieldID);
44
- int bottom = env->GetIntField(insetsObj, bottomFieldID);
45
-
46
- env->DeleteLocalRef(insetsClass);
47
-
48
- return Insets{top, bottom, left, right};
49
- }
50
-
51
- void JNI_callPlatformWithColor(JNIEnv *env, jobject unistylesModule, std::string name, std::string sig, std::string param, float alpha) {
52
- jclass cls = env->GetObjectClass(unistylesModule);
53
- jfieldID platformFieldId = env->GetFieldID(cls, "platform", "Lcom/unistyles/Platform;");
54
- jobject platformInstance = env->GetObjectField(unistylesModule, platformFieldId);
55
- jclass platformClass = env->GetObjectClass(platformInstance);
56
- jstring strParam = env->NewStringUTF(param.c_str());
57
- jmethodID methodId = env->GetMethodID(platformClass, name.c_str(), sig.c_str());
58
-
59
- env->CallVoidMethod(platformInstance, methodId, strParam, static_cast<jfloat>(alpha));
60
-
61
- env->DeleteLocalRef(cls);
62
- env->DeleteLocalRef(platformInstance);
63
- env->DeleteLocalRef(platformClass);
64
- env->DeleteLocalRef(strParam);
65
- }
66
-
67
- void JNI_callPlatformWithBool(JNIEnv *env, jobject unistylesModule, std::string name, std::string sig, bool param) {
68
- jclass cls = env->GetObjectClass(unistylesModule);
69
- jfieldID platformFieldId = env->GetFieldID(cls, "platform", "Lcom/unistyles/Platform;");
70
- jobject platformInstance = env->GetObjectField(unistylesModule, platformFieldId);
71
- jclass platformClass = env->GetObjectClass(platformInstance);
72
- jmethodID methodId = env->GetMethodID(platformClass, name.c_str(), sig.c_str());
73
-
74
- env->CallVoidMethod(platformInstance, methodId, param);
75
- env->DeleteLocalRef(cls);
76
- env->DeleteLocalRef(platformInstance);
77
- env->DeleteLocalRef(platformClass);
78
- }
79
-
80
- jobject JNI_callPlatform(JNIEnv *env, jobject unistylesModule, std::string name, std::string sig) {
81
- jclass cls = env->GetObjectClass(unistylesModule);
82
- jfieldID platformFieldId = env->GetFieldID(cls, "platform", "Lcom/unistyles/Platform;");
83
- jobject platformInstance = env->GetObjectField(unistylesModule, platformFieldId);
84
- jclass platformClass = env->GetObjectClass(platformInstance);
85
- jmethodID methodId = env->GetMethodID(platformClass, name.c_str(), sig.c_str());
86
- jobject result = env->CallObjectMethod(platformInstance, methodId);
87
-
88
- env->DeleteLocalRef(cls);
89
- env->DeleteLocalRef(platformInstance);
90
- env->DeleteLocalRef(platformClass);
91
-
92
- return result;
93
- }
94
-
95
- void throwKotlinException(
96
- JNIEnv *env,
97
- const char *message
98
- ) {
99
- jclass runtimeExceptionClass = env->FindClass("java/lang/RuntimeException");
100
-
101
- if (runtimeExceptionClass != nullptr) {
102
- env->ThrowNew(runtimeExceptionClass, message);
103
- env->DeleteLocalRef(runtimeExceptionClass);
104
- }
105
- }
@@ -1,16 +0,0 @@
1
- #pragma once
2
-
3
- #include <jni.h>
4
- #include <string>
5
- #include <map>
6
- #include <UnistylesRuntime.h>
7
-
8
- Dimensions jobjectToDimensions(JNIEnv *env, jobject dimensionObj);
9
- Screen jobjectToScreen(JNIEnv *env, jobject screenObj);
10
- Insets jobjectToInsets(JNIEnv *env, jobject insetsObj);
11
-
12
- void JNI_callPlatformWithColor(JNIEnv *env, jobject unistylesModule, std::string name, std::string sig, std::string param, float alpha);
13
- jobject JNI_callPlatform(JNIEnv *env, jobject unistylesModule, std::string name, std::string sig);
14
- void JNI_callPlatformWithBool(JNIEnv *env, jobject unistylesModule, std::string name, std::string sig, bool param);
15
-
16
- void throwKotlinException(JNIEnv *env, const char *message);
@@ -1,170 +0,0 @@
1
- #include "platform.h"
2
-
3
- void makeShared(JNIEnv *env, jobject unistylesModule, std::shared_ptr<UnistylesRuntime> unistylesRuntime) {
4
- unistylesRuntime->setScreenDimensionsCallback([&](){
5
- return getScreenDimensions(env, unistylesModule);
6
- });
7
-
8
- unistylesRuntime->setColorSchemeCallback([&](){
9
- return getColorScheme(env, unistylesModule);
10
- });
11
-
12
- unistylesRuntime->setStatusBarDimensionsCallback([&](){
13
- return getStatusBarDimensions(env, unistylesModule);
14
- });
15
-
16
- unistylesRuntime->setNavigationBarDimensionsCallback([&](){
17
- return getNavigationBarDimensions(env, unistylesModule);
18
- });
19
-
20
- unistylesRuntime->setInsetsCallback([&](){
21
- return getInsets(env, unistylesModule);
22
- });
23
-
24
- unistylesRuntime->setContentSizeCategoryCallback([&](){
25
- return getContentSizeCategory(env, unistylesModule);
26
- });
27
-
28
- unistylesRuntime->setNavigationBarColorCallback([=](const std::string &color, float alpha) {
29
- setNavigationBarColor(env, unistylesModule, color, alpha);
30
- });
31
-
32
- unistylesRuntime->setStatusBarColorCallback([=](const std::string &color, float alpha) {
33
- setStatusBarColor(env, unistylesModule, color, alpha);
34
- });
35
-
36
- unistylesRuntime->setNavigationBarHiddenCallback([=](bool hidden) {
37
- setNavigationBarHidden(env, unistylesModule, hidden);
38
- });
39
-
40
- unistylesRuntime->setStatusBarHiddenCallback([=](bool hidden) {
41
- setStatusBarHidden(env, unistylesModule, hidden);
42
- });
43
-
44
- unistylesRuntime->setImmersiveModeCallback([=](bool enabled) {
45
- setImmersiveMode(env, unistylesModule, enabled);
46
- });
47
-
48
- unistylesRuntime->setRootViewBackgroundColorCallback([=](const std::string &color, float alpha) {
49
- setRootViewBackgroundColor(env, unistylesModule, color, alpha);
50
- });
51
-
52
- unistylesRuntime->setDisableAnimatedInsetsAndroidCallback([=]() {
53
- disableAnimatedInsets(env, unistylesModule);
54
- });
55
-
56
- Screen screen = getScreenDimensions(env, unistylesModule);
57
-
58
- unistylesRuntime->screen = Dimensions{screen.width, screen.height};
59
- unistylesRuntime->contentSizeCategory = getContentSizeCategory(env, unistylesModule);
60
- unistylesRuntime->colorScheme = getColorScheme(env, unistylesModule);
61
- unistylesRuntime->statusBar = getStatusBarDimensions(env, unistylesModule);
62
- unistylesRuntime->insets = getInsets(env, unistylesModule);
63
- unistylesRuntime->navigationBar = getNavigationBarDimensions(env, unistylesModule);
64
- unistylesRuntime->fontScale = screen.fontScale;
65
- unistylesRuntime->pixelRatio = screen.pixelRatio;
66
- unistylesRuntime->rtl = getIsRTL(env, unistylesModule);
67
- }
68
-
69
- void disableAnimatedInsets(JNIEnv *env, jobject unistylesModule) {
70
- jclass cls = env->GetObjectClass(unistylesModule);
71
- jfieldID platformFieldId = env->GetFieldID(cls, "platform", "Lcom/unistyles/Platform;");
72
- jobject platformInstance = env->GetObjectField(unistylesModule, platformFieldId);
73
- jclass platformClass = env->GetObjectClass(platformInstance);
74
- jmethodID methodId = env->GetMethodID(platformClass, "disableAnimatedInsets", "()V");
75
-
76
- env->CallVoidMethod(platformInstance, methodId);
77
-
78
- env->DeleteLocalRef(cls);
79
- env->DeleteLocalRef(platformInstance);
80
- env->DeleteLocalRef(platformClass);
81
- }
82
-
83
- Screen getScreenDimensions(JNIEnv *env, jobject unistylesModule) {
84
- jobject result = JNI_callPlatform(env, unistylesModule, "getScreenDimensions", "()Lcom/unistyles/Screen;");
85
- Screen screenDimensions = jobjectToScreen(env, result);
86
-
87
- return screenDimensions;
88
- }
89
-
90
- std::string getColorScheme(JNIEnv *env, jobject unistylesModule) {
91
- jstring colorScheme = (jstring) JNI_callPlatform(env, unistylesModule, "getColorScheme", "()Ljava/lang/String;");
92
- const char *colorSchemeChars = env->GetStringUTFChars(colorScheme, nullptr);
93
- std::string colorSchemeStr = std::string(colorSchemeChars);
94
-
95
- env->ReleaseStringUTFChars(colorScheme, colorSchemeChars);
96
- env->DeleteLocalRef(colorScheme);
97
-
98
- return colorSchemeStr;
99
- }
100
-
101
- bool getIsRTL(JNIEnv *env, jobject unistylesModule) {
102
- jclass cls = env->GetObjectClass(unistylesModule);
103
- jfieldID platformFieldId = env->GetFieldID(cls, "platform", "Lcom/unistyles/Platform;");
104
- jobject platformInstance = env->GetObjectField(unistylesModule, platformFieldId);
105
- jclass platformClass = env->GetObjectClass(platformInstance);
106
- jmethodID methodId = env->GetMethodID(platformClass, "getIsRTL", "()Z");
107
- jboolean result = env->CallBooleanMethod(platformInstance, methodId);
108
-
109
- env->DeleteLocalRef(cls);
110
- env->DeleteLocalRef(platformInstance);
111
- env->DeleteLocalRef(platformClass);
112
-
113
- return result;
114
- }
115
-
116
- Dimensions getStatusBarDimensions(JNIEnv *env, jobject unistylesModule) {
117
- jobject dimensionsObj = JNI_callPlatform(env, unistylesModule, "getStatusBarDimensions", "()Lcom/unistyles/Dimensions;");
118
- Dimensions statusBarDimensions = jobjectToDimensions(env, dimensionsObj);
119
-
120
- return statusBarDimensions;
121
- }
122
-
123
- Dimensions getNavigationBarDimensions(JNIEnv *env, jobject unistylesModule) {
124
- jobject dimensionsObj = JNI_callPlatform(env, unistylesModule, "getNavigationBarDimensions", "()Lcom/unistyles/Dimensions;");
125
- Dimensions navigationBarDimensions = jobjectToDimensions(env, dimensionsObj);
126
-
127
- return navigationBarDimensions;
128
- }
129
-
130
- Insets getInsets(JNIEnv *env, jobject unistylesModule) {
131
- jobject insetsObj = JNI_callPlatform(env, unistylesModule, "getInsets", "()Lcom/unistyles/Insets;");
132
- Insets insets = jobjectToInsets(env, insetsObj);
133
-
134
- return insets;
135
- }
136
-
137
- std::string getContentSizeCategory(JNIEnv *env, jobject unistylesModule) {
138
- jstring contentSizeCategory = (jstring) JNI_callPlatform(env, unistylesModule, "getContentSizeCategory", "()Ljava/lang/String;");
139
- const char *contentSizeCategoryChars = env->GetStringUTFChars(contentSizeCategory, nullptr);
140
- std::string contentSizeCategoryStr = std::string(contentSizeCategoryChars);
141
-
142
- env->ReleaseStringUTFChars(contentSizeCategory, contentSizeCategoryChars);
143
- env->DeleteLocalRef(contentSizeCategory);
144
-
145
- return contentSizeCategoryStr;
146
- }
147
-
148
- void setStatusBarColor(JNIEnv *env, jobject unistylesModule, std::string color, float alpha) {
149
- JNI_callPlatformWithColor(env, unistylesModule, "onSetStatusBarColor", "(Ljava/lang/String;F)V", color, alpha);
150
- }
151
-
152
- void setNavigationBarColor(JNIEnv *env, jobject unistylesModule, std::string color, float alpha) {
153
- JNI_callPlatformWithColor(env, unistylesModule, "onSetNavigationBarColor", "(Ljava/lang/String;F)V", color, alpha);
154
- }
155
-
156
- void setNavigationBarHidden(JNIEnv *env, jobject unistylesModule, bool hidden) {
157
- JNI_callPlatformWithBool(env, unistylesModule, "onSetNavigationBarHidden", "(Z)V", hidden);
158
- }
159
-
160
- void setStatusBarHidden(JNIEnv *env, jobject unistylesModule, bool hidden) {
161
- JNI_callPlatformWithBool(env, unistylesModule, "onSetStatusBarHidden", "(Z)V", hidden);
162
- }
163
-
164
- void setImmersiveMode(JNIEnv *env, jobject unistylesModule, bool enabled) {
165
- JNI_callPlatformWithBool(env, unistylesModule, "onSetImmersiveMode", "(Z)V", enabled);
166
- }
167
-
168
- void setRootViewBackgroundColor(JNIEnv *env, jobject unistylesModule, std::string color, float alpha) {
169
- JNI_callPlatformWithColor(env, unistylesModule, "onSetRootViewBackgroundColor", "(Ljava/lang/String;F)V", color, alpha);
170
- }
@@ -1,20 +0,0 @@
1
- #pragma once
2
-
3
- #include "UnistylesRuntime.h"
4
- #include "helpers.h"
5
-
6
- void makeShared(JNIEnv *env, jobject unistylesModule, std::shared_ptr<UnistylesRuntime> unistylesRuntime);
7
- Screen getScreenDimensions(JNIEnv *env, jobject unistylesModule);
8
- std::string getColorScheme(JNIEnv *env, jobject unistylesModule);
9
- Dimensions getStatusBarDimensions(JNIEnv *env, jobject unistylesModule);
10
- Dimensions getNavigationBarDimensions(JNIEnv *env, jobject unistylesModule);
11
- void setNavigationBarHidden(JNIEnv *env, jobject unistylesModule, bool hidden);
12
- void setStatusBarHidden(JNIEnv *env, jobject unistylesModule, bool hidden);
13
- void setImmersiveMode(JNIEnv *env, jobject unistylesModule, bool hidden);
14
- void setRootViewBackgroundColor(JNIEnv *env, jobject unistylesModule, std::string color, float alpha);
15
- Insets getInsets(JNIEnv *env, jobject unistylesModule);
16
- bool getIsRTL(JNIEnv *env, jobject unistylesModule);
17
- std::string getContentSizeCategory(JNIEnv *env, jobject unistylesModule);
18
- void setNavigationBarColor(JNIEnv *env, jobject unistylesModule, std::string color, float alpha);
19
- void setStatusBarColor(JNIEnv *env, jobject unistylesModule, std::string color, float alpha);
20
- void disableAnimatedInsets(JNIEnv *env, jobject unistylesModule);
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import './unistyles';
3
- export declare const App: () => React.JSX.Element;
4
- //# sourceMappingURL=App.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../example/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAG/C,OAAO,aAAa,CAAA;AAEpB,eAAO,MAAM,GAAG,yBAoBf,CAAA"}
@@ -1,63 +0,0 @@
1
- declare const lightTheme: {
2
- colors: {
3
- backgroundColor: string;
4
- typography: string;
5
- accent: string;
6
- barbie: string;
7
- oak: string;
8
- sky: string;
9
- fog: string;
10
- aloes: string;
11
- blood: string;
12
- };
13
- gap: (v: number) => number;
14
- };
15
- declare const darkTheme: {
16
- colors: {
17
- backgroundColor: string;
18
- typography: string;
19
- accent: string;
20
- barbie: string;
21
- oak: string;
22
- sky: string;
23
- fog: string;
24
- aloes: string;
25
- blood: string;
26
- };
27
- gap: (v: number) => number;
28
- };
29
- declare const premiumTheme: {
30
- colors: {
31
- backgroundColor: string;
32
- typography: string;
33
- accent: string;
34
- barbie: string;
35
- oak: string;
36
- sky: string;
37
- fog: string;
38
- aloes: string;
39
- blood: string;
40
- };
41
- gap: (v: number) => number;
42
- };
43
- declare const breakpoints: {
44
- xs: number;
45
- sm: number;
46
- md: number;
47
- lg: number;
48
- xl: number;
49
- };
50
- type AppBreakpoints = typeof breakpoints;
51
- type AppThemes = {
52
- light: typeof lightTheme;
53
- dark: typeof darkTheme;
54
- premium: typeof premiumTheme;
55
- };
56
- declare module 'react-native-unistyles' {
57
- interface UnistylesThemes extends AppThemes {
58
- }
59
- interface UnistylesBreakpoints extends AppBreakpoints {
60
- }
61
- }
62
- export {};
63
- //# sourceMappingURL=unistyles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unistyles.d.ts","sourceRoot":"","sources":["../../../example/unistyles.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,UAAU;;;;;;;;;;;;aAOH,MAAM;CAClB,CAAA;AAED,QAAA,MAAM,SAAS;;;;;;;;;;;;aAOF,MAAM;CAClB,CAAA;AAED,QAAA,MAAM,YAAY;;;;;;;;;;;;aAOL,MAAM;CAClB,CAAA;AAED,QAAA,MAAM,WAAW;;;;;;CAMhB,CAAA;AAED,KAAK,cAAc,GAAG,OAAO,WAAW,CAAA;AACxC,KAAK,SAAS,GAAG;IACb,KAAK,EAAE,OAAO,UAAU,CAAA;IACxB,IAAI,EAAE,OAAO,SAAS,CAAA;IACtB,OAAO,EAAE,OAAO,YAAY,CAAA;CAC/B,CAAA;AAED,OAAO,QAAQ,wBAAwB,CAAC;IACpC,UAAiB,eAAgB,SAAQ,SAAS;KAAG;IAErD,UAAiB,oBAAqB,SAAQ,cAAc;KAAG;CAClE"}
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import './unistyles';
3
- export default function App(): React.JSX.Element;
4
- //# sourceMappingURL=App.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../expo-example/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAGvC,OAAO,aAAa,CAAA;AAEpB,MAAM,CAAC,OAAO,UAAU,GAAG,sBAyC1B"}