react-native-unistyles 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (396) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +30 -38
  3. package/android/CMakeLists.txt +27 -0
  4. package/android/build.gradle +75 -0
  5. package/android/src/main/cxx/cpp-adapter.cpp +132 -0
  6. package/android/src/main/java/com/unistyles/UnistylesModule.kt +189 -0
  7. package/android/src/main/java/com/unistyles/UnistylesPackage.kt +18 -0
  8. package/cxx/UnistylesRuntime.cpp +318 -0
  9. package/cxx/UnistylesRuntime.h +74 -0
  10. package/ios/UnistylesHelpers.h +3 -0
  11. package/ios/UnistylesHelpers.mm +5 -0
  12. package/ios/UnistylesModule.h +16 -0
  13. package/ios/UnistylesModule.mm +138 -0
  14. package/ios/platform/Platform_iOS.h +21 -0
  15. package/ios/platform/Platform_iOS.mm +132 -0
  16. package/ios/platform/Platform_macOS.h +20 -0
  17. package/ios/platform/Platform_macOS.mm +83 -0
  18. package/lib/commonjs/common.js +60 -0
  19. package/lib/commonjs/common.js.map +1 -0
  20. package/lib/commonjs/core/UnistyleRegistry.js +94 -0
  21. package/lib/commonjs/core/UnistyleRegistry.js.map +1 -0
  22. package/lib/commonjs/core/Unistyles.js +32 -0
  23. package/lib/commonjs/core/Unistyles.js.map +1 -0
  24. package/lib/commonjs/core/UnistylesModule.js +197 -0
  25. package/lib/commonjs/core/UnistylesModule.js.map +1 -0
  26. package/lib/commonjs/core/UnistylesModule.native.js +9 -0
  27. package/lib/commonjs/core/UnistylesModule.native.js.map +1 -0
  28. package/lib/commonjs/core/UnistylesRuntime.js +140 -0
  29. package/lib/commonjs/core/UnistylesRuntime.js.map +1 -0
  30. package/lib/commonjs/core/index.js +13 -0
  31. package/lib/commonjs/core/index.js.map +1 -0
  32. package/lib/commonjs/createStyleSheet.js +14 -0
  33. package/lib/commonjs/createStyleSheet.js.map +1 -0
  34. package/lib/commonjs/global.js +2 -0
  35. package/lib/commonjs/global.js.map +1 -0
  36. package/lib/commonjs/hooks/index.js +24 -3
  37. package/lib/commonjs/hooks/index.js.map +1 -1
  38. package/lib/commonjs/hooks/useCSS.js +44 -0
  39. package/lib/commonjs/hooks/useCSS.js.map +1 -0
  40. package/lib/commonjs/hooks/useCSS.native.js +9 -0
  41. package/lib/commonjs/hooks/useCSS.native.js.map +1 -0
  42. package/lib/commonjs/hooks/useInitialTheme.js +17 -0
  43. package/lib/commonjs/hooks/useInitialTheme.js.map +1 -0
  44. package/lib/commonjs/hooks/useUnistyles.js +64 -0
  45. package/lib/commonjs/hooks/useUnistyles.js.map +1 -0
  46. package/lib/commonjs/hooks/useVariants.js +14 -0
  47. package/lib/commonjs/hooks/useVariants.js.map +1 -0
  48. package/lib/commonjs/index.js +63 -6
  49. package/lib/commonjs/index.js.map +1 -1
  50. package/lib/commonjs/normalizer/index.js +32 -0
  51. package/lib/commonjs/normalizer/index.js.map +1 -0
  52. package/lib/commonjs/normalizer/module.d.js.map +1 -0
  53. package/lib/commonjs/{utils/normalizeStyles.web.js → normalizer/normalizeStyle.js} +5 -5
  54. package/lib/commonjs/normalizer/normalizeStyle.js.map +1 -0
  55. package/lib/commonjs/{utils → normalizer}/normalizer.js +2 -3
  56. package/lib/commonjs/normalizer/normalizer.js.map +1 -0
  57. package/lib/commonjs/normalizer/normalizer.macos.js +3 -0
  58. package/lib/commonjs/normalizer/normalizer.macos.js.map +1 -0
  59. package/lib/commonjs/plugins/cssMediaQueriesPlugin.js +14 -0
  60. package/lib/commonjs/plugins/cssMediaQueriesPlugin.js.map +1 -0
  61. package/lib/commonjs/plugins/index.js +20 -0
  62. package/lib/commonjs/plugins/index.js.map +1 -0
  63. package/lib/commonjs/plugins/normalizeWebStylesPlugin.js +12 -0
  64. package/lib/commonjs/plugins/normalizeWebStylesPlugin.js.map +1 -0
  65. package/lib/commonjs/types/common.js +2 -0
  66. package/lib/{module/utils/module.d.js.map → commonjs/types/common.js.map} +1 -1
  67. package/lib/commonjs/types/index.js +11 -0
  68. package/lib/commonjs/types/index.js.map +1 -1
  69. package/lib/commonjs/types/plugin.js +6 -0
  70. package/lib/commonjs/{utils/module.d.js.map → types/plugin.js.map} +1 -1
  71. package/lib/commonjs/types/stylesheet.js +6 -0
  72. package/lib/commonjs/types/{mediaQueries.js.map → stylesheet.js.map} +1 -1
  73. package/lib/commonjs/types/unistyles.js +6 -0
  74. package/lib/{module/types/mediaQueries.js.map → commonjs/types/unistyles.js.map} +1 -1
  75. package/lib/commonjs/types/variants.js +2 -0
  76. package/lib/commonjs/types/variants.js.map +1 -0
  77. package/lib/commonjs/useStyles.js +47 -0
  78. package/lib/commonjs/useStyles.js.map +1 -0
  79. package/lib/commonjs/utils/breakpoints.js +20 -122
  80. package/lib/commonjs/utils/breakpoints.js.map +1 -1
  81. package/lib/commonjs/utils/cssMediaQuery.js +244 -0
  82. package/lib/commonjs/utils/cssMediaQuery.js.map +1 -0
  83. package/lib/commonjs/utils/generateId.js +15 -0
  84. package/lib/commonjs/utils/generateId.js.map +1 -0
  85. package/lib/commonjs/utils/hash32.js +43 -0
  86. package/lib/commonjs/utils/hash32.js.map +1 -0
  87. package/lib/commonjs/utils/index.js +22 -54
  88. package/lib/commonjs/utils/index.js.map +1 -1
  89. package/lib/commonjs/utils/mq.js +38 -0
  90. package/lib/commonjs/utils/mq.js.map +1 -0
  91. package/lib/commonjs/utils/mqParser.js +89 -0
  92. package/lib/commonjs/utils/mqParser.js.map +1 -0
  93. package/lib/commonjs/utils/styles.js +45 -72
  94. package/lib/commonjs/utils/styles.js.map +1 -1
  95. package/lib/commonjs/utils/withPlugins.js +15 -0
  96. package/lib/commonjs/utils/withPlugins.js.map +1 -0
  97. package/lib/module/common.js +53 -0
  98. package/lib/module/common.js.map +1 -0
  99. package/lib/module/core/UnistyleRegistry.js +87 -0
  100. package/lib/module/core/UnistyleRegistry.js.map +1 -0
  101. package/lib/module/core/Unistyles.js +26 -0
  102. package/lib/module/core/Unistyles.js.map +1 -0
  103. package/lib/module/core/UnistylesModule.js +190 -0
  104. package/lib/module/core/UnistylesModule.js.map +1 -0
  105. package/lib/module/core/UnistylesModule.native.js +3 -0
  106. package/lib/module/core/UnistylesModule.native.js.map +1 -0
  107. package/lib/module/core/UnistylesRuntime.js +133 -0
  108. package/lib/module/core/UnistylesRuntime.js.map +1 -0
  109. package/lib/module/core/index.js +2 -0
  110. package/lib/module/core/index.js.map +1 -0
  111. package/lib/module/createStyleSheet.js +7 -0
  112. package/lib/module/createStyleSheet.js.map +1 -0
  113. package/lib/module/global.js +2 -0
  114. package/lib/module/global.js.map +1 -0
  115. package/lib/module/hooks/index.js +4 -1
  116. package/lib/module/hooks/index.js.map +1 -1
  117. package/lib/module/hooks/useCSS.js +37 -0
  118. package/lib/module/hooks/useCSS.js.map +1 -0
  119. package/lib/module/hooks/useCSS.native.js +2 -0
  120. package/lib/module/hooks/useCSS.native.js.map +1 -0
  121. package/lib/module/hooks/useInitialTheme.js +10 -0
  122. package/lib/module/hooks/useInitialTheme.js.map +1 -0
  123. package/lib/module/hooks/useUnistyles.js +57 -0
  124. package/lib/module/hooks/useUnistyles.js.map +1 -0
  125. package/lib/module/hooks/useVariants.js +7 -0
  126. package/lib/module/hooks/useVariants.js.map +1 -0
  127. package/lib/module/index.js +30 -2
  128. package/lib/module/index.js.map +1 -1
  129. package/lib/module/normalizer/index.js +3 -0
  130. package/lib/module/normalizer/index.js.map +1 -0
  131. package/lib/module/normalizer/module.d.js.map +1 -0
  132. package/lib/module/{utils/normalizeStyles.web.js → normalizer/normalizeStyle.js} +3 -3
  133. package/lib/module/normalizer/normalizeStyle.js.map +1 -0
  134. package/lib/module/{utils → normalizer}/normalizer.js +2 -3
  135. package/lib/module/normalizer/normalizer.js.map +1 -0
  136. package/lib/module/normalizer/normalizer.macos.js +2 -0
  137. package/lib/module/normalizer/normalizer.macos.js.map +1 -0
  138. package/lib/module/plugins/cssMediaQueriesPlugin.js +7 -0
  139. package/lib/module/plugins/cssMediaQueriesPlugin.js.map +1 -0
  140. package/lib/module/plugins/index.js +3 -0
  141. package/lib/module/plugins/index.js.map +1 -0
  142. package/lib/module/plugins/normalizeWebStylesPlugin.js +6 -0
  143. package/lib/module/plugins/normalizeWebStylesPlugin.js.map +1 -0
  144. package/lib/module/types/common.js +2 -0
  145. package/lib/module/types/common.js.map +1 -0
  146. package/lib/module/types/index.js +1 -0
  147. package/lib/module/types/index.js.map +1 -1
  148. package/lib/module/types/plugin.js +2 -0
  149. package/lib/module/types/plugin.js.map +1 -0
  150. package/lib/module/types/stylesheet.js +2 -0
  151. package/lib/module/types/stylesheet.js.map +1 -0
  152. package/lib/module/types/unistyles.js +2 -0
  153. package/lib/module/types/unistyles.js.map +1 -0
  154. package/lib/module/types/variants.js +2 -0
  155. package/lib/module/types/variants.js.map +1 -0
  156. package/lib/module/useStyles.js +40 -0
  157. package/lib/module/useStyles.js.map +1 -0
  158. package/lib/module/utils/breakpoints.js +19 -120
  159. package/lib/module/utils/breakpoints.js.map +1 -1
  160. package/lib/module/utils/cssMediaQuery.js +237 -0
  161. package/lib/module/utils/cssMediaQuery.js.map +1 -0
  162. package/lib/module/utils/generateId.js +7 -0
  163. package/lib/module/utils/generateId.js.map +1 -0
  164. package/lib/module/utils/hash32.js +36 -0
  165. package/lib/module/utils/hash32.js.map +1 -0
  166. package/lib/module/utils/index.js +6 -6
  167. package/lib/module/utils/index.js.map +1 -1
  168. package/lib/module/utils/mq.js +32 -0
  169. package/lib/module/utils/mq.js.map +1 -0
  170. package/lib/module/utils/mqParser.js +78 -0
  171. package/lib/module/utils/mqParser.js.map +1 -0
  172. package/lib/module/utils/styles.js +44 -72
  173. package/lib/module/utils/styles.js.map +1 -1
  174. package/lib/module/utils/withPlugins.js +8 -0
  175. package/lib/module/utils/withPlugins.js.map +1 -0
  176. package/lib/typescript/src/common.d.ts +46 -0
  177. package/lib/typescript/src/common.d.ts.map +1 -0
  178. package/lib/typescript/src/core/UnistyleRegistry.d.ts +56 -0
  179. package/lib/typescript/src/core/UnistyleRegistry.d.ts.map +1 -0
  180. package/lib/typescript/src/core/Unistyles.d.ts +13 -0
  181. package/lib/typescript/src/core/Unistyles.d.ts.map +1 -0
  182. package/lib/typescript/src/core/UnistylesModule.d.ts +19 -0
  183. package/lib/typescript/src/core/UnistylesModule.d.ts.map +1 -0
  184. package/lib/typescript/src/core/UnistylesModule.native.d.ts +6 -0
  185. package/lib/typescript/src/core/UnistylesModule.native.d.ts.map +1 -0
  186. package/lib/typescript/src/core/UnistylesRuntime.d.ts +81 -0
  187. package/lib/typescript/src/core/UnistylesRuntime.d.ts.map +1 -0
  188. package/lib/typescript/src/core/index.d.ts +3 -0
  189. package/lib/typescript/src/core/index.d.ts.map +1 -0
  190. package/lib/typescript/src/createStyleSheet.d.ts +8 -0
  191. package/lib/typescript/src/createStyleSheet.d.ts.map +1 -0
  192. package/lib/typescript/src/global.d.ts +7 -0
  193. package/lib/typescript/src/global.d.ts.map +1 -0
  194. package/lib/typescript/src/hooks/index.d.ts +4 -1
  195. package/lib/typescript/src/hooks/index.d.ts.map +1 -1
  196. package/lib/typescript/src/hooks/useCSS.d.ts +3 -0
  197. package/lib/typescript/src/hooks/useCSS.d.ts.map +1 -0
  198. package/lib/typescript/src/hooks/useCSS.native.d.ts +3 -0
  199. package/lib/typescript/src/hooks/useCSS.native.d.ts.map +1 -0
  200. package/lib/typescript/src/hooks/useInitialTheme.d.ts +3 -0
  201. package/lib/typescript/src/hooks/useInitialTheme.d.ts.map +1 -0
  202. package/lib/typescript/src/hooks/useUnistyles.d.ts +14 -0
  203. package/lib/typescript/src/hooks/useUnistyles.d.ts.map +1 -0
  204. package/lib/typescript/src/hooks/useVariants.d.ts +3 -0
  205. package/lib/typescript/src/hooks/useVariants.d.ts.map +1 -0
  206. package/lib/typescript/src/index.d.ts +76 -2
  207. package/lib/typescript/src/index.d.ts.map +1 -1
  208. package/lib/typescript/src/normalizer/index.d.ts +3 -0
  209. package/lib/typescript/src/normalizer/index.d.ts.map +1 -0
  210. package/lib/typescript/src/normalizer/normalizeStyle.d.ts +3 -0
  211. package/lib/typescript/src/normalizer/normalizeStyle.d.ts.map +1 -0
  212. package/lib/typescript/src/normalizer/normalizer.d.ts.map +1 -0
  213. package/lib/typescript/src/normalizer/normalizer.macos.d.ts +1 -0
  214. package/lib/typescript/src/normalizer/normalizer.macos.d.ts.map +1 -0
  215. package/lib/typescript/src/plugins/cssMediaQueriesPlugin.d.ts +3 -0
  216. package/lib/typescript/src/plugins/cssMediaQueriesPlugin.d.ts.map +1 -0
  217. package/lib/typescript/src/plugins/index.d.ts +3 -0
  218. package/lib/typescript/src/plugins/index.d.ts.map +1 -0
  219. package/lib/typescript/src/plugins/normalizeWebStylesPlugin.d.ts +3 -0
  220. package/lib/typescript/src/plugins/normalizeWebStylesPlugin.d.ts.map +1 -0
  221. package/lib/typescript/src/types/breakpoints.d.ts +25 -17
  222. package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
  223. package/lib/typescript/src/types/common.d.ts +3 -0
  224. package/lib/typescript/src/types/common.d.ts.map +1 -0
  225. package/lib/typescript/src/types/core.d.ts +11 -25
  226. package/lib/typescript/src/types/core.d.ts.map +1 -1
  227. package/lib/typescript/src/types/index.d.ts +7 -2
  228. package/lib/typescript/src/types/index.d.ts.map +1 -1
  229. package/lib/typescript/src/types/plugin.d.ts +7 -0
  230. package/lib/typescript/src/types/plugin.d.ts.map +1 -0
  231. package/lib/typescript/src/types/stylesheet.d.ts +40 -0
  232. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -0
  233. package/lib/typescript/src/types/unistyles.d.ts +53 -0
  234. package/lib/typescript/src/types/unistyles.d.ts.map +1 -0
  235. package/lib/typescript/src/types/variants.d.ts +14 -0
  236. package/lib/typescript/src/types/variants.d.ts.map +1 -0
  237. package/lib/typescript/src/useStyles.d.ts +16 -0
  238. package/lib/typescript/src/useStyles.d.ts.map +1 -0
  239. package/lib/typescript/src/utils/breakpoints.d.ts +2 -62
  240. package/lib/typescript/src/utils/breakpoints.d.ts.map +1 -1
  241. package/lib/typescript/src/utils/cssMediaQuery.d.ts +4 -0
  242. package/lib/typescript/src/utils/cssMediaQuery.d.ts.map +1 -0
  243. package/lib/typescript/src/utils/generateId.d.ts +2 -0
  244. package/lib/typescript/src/utils/generateId.d.ts.map +1 -0
  245. package/lib/typescript/src/utils/hash32.d.ts +2 -0
  246. package/lib/typescript/src/utils/hash32.d.ts.map +1 -0
  247. package/lib/typescript/src/utils/index.d.ts +7 -6
  248. package/lib/typescript/src/utils/index.d.ts.map +1 -1
  249. package/lib/typescript/src/utils/mq.d.ts +26 -0
  250. package/lib/typescript/src/utils/mq.d.ts.map +1 -0
  251. package/lib/typescript/src/utils/mqParser.d.ts +16 -0
  252. package/lib/typescript/src/utils/mqParser.d.ts.map +1 -0
  253. package/lib/typescript/src/utils/styles.d.ts +3 -49
  254. package/lib/typescript/src/utils/styles.d.ts.map +1 -1
  255. package/lib/typescript/src/utils/withPlugins.d.ts +3 -0
  256. package/lib/typescript/src/utils/withPlugins.d.ts.map +1 -0
  257. package/package.json +46 -25
  258. package/react-native-unistyles.podspec +22 -0
  259. package/src/__tests__/mocks.ts +24 -0
  260. package/src/common.ts +55 -0
  261. package/src/core/UnistyleRegistry.ts +108 -0
  262. package/src/core/Unistyles.ts +35 -0
  263. package/src/core/UnistylesModule.native.ts +7 -0
  264. package/src/core/UnistylesModule.ts +230 -0
  265. package/src/core/UnistylesRuntime.ts +135 -0
  266. package/src/core/index.ts +2 -0
  267. package/src/createStyleSheet.ts +8 -0
  268. package/src/global.ts +6 -0
  269. package/src/hooks/index.ts +4 -1
  270. package/src/hooks/useCSS.native.ts +3 -0
  271. package/src/hooks/useCSS.ts +51 -0
  272. package/src/hooks/useInitialTheme.ts +11 -0
  273. package/src/hooks/useUnistyles.ts +64 -0
  274. package/src/hooks/useVariants.ts +10 -0
  275. package/src/index.ts +50 -2
  276. package/src/normalizer/index.ts +2 -0
  277. package/src/{utils/normalizeStyles.web.ts → normalizer/normalizeStyle.ts} +3 -3
  278. package/src/normalizer/normalizer.macos.ts +1 -0
  279. package/src/{utils → normalizer}/normalizer.ts +5 -4
  280. package/src/plugins/cssMediaQueriesPlugin.ts +8 -0
  281. package/src/plugins/index.ts +2 -0
  282. package/src/plugins/normalizeWebStylesPlugin.ts +7 -0
  283. package/src/types/breakpoints.ts +58 -33
  284. package/src/types/common.ts +2 -0
  285. package/src/types/core.ts +11 -36
  286. package/src/types/index.ts +12 -7
  287. package/src/types/plugin.ts +7 -0
  288. package/src/types/stylesheet.ts +49 -0
  289. package/src/types/unistyles.ts +63 -0
  290. package/src/types/variants.ts +19 -0
  291. package/src/useStyles.ts +60 -0
  292. package/src/utils/breakpoints.ts +28 -124
  293. package/src/utils/cssMediaQuery.ts +268 -0
  294. package/src/utils/generateId.ts +10 -0
  295. package/src/utils/hash32.ts +53 -0
  296. package/src/utils/index.ts +7 -13
  297. package/src/utils/mq.ts +57 -0
  298. package/src/utils/mqParser.ts +99 -0
  299. package/src/utils/styles.ts +54 -102
  300. package/src/utils/withPlugins.ts +13 -0
  301. package/lib/commonjs/UnistylesTheme.js +0 -21
  302. package/lib/commonjs/UnistylesTheme.js.map +0 -1
  303. package/lib/commonjs/createUnistyles.js +0 -57
  304. package/lib/commonjs/createUnistyles.js.map +0 -1
  305. package/lib/commonjs/hooks/useDimensions.js +0 -10
  306. package/lib/commonjs/hooks/useDimensions.js.map +0 -1
  307. package/lib/commonjs/hooks/useDimensions.web.js +0 -34
  308. package/lib/commonjs/hooks/useDimensions.web.js.map +0 -1
  309. package/lib/commonjs/types/mediaQueries.js +0 -2
  310. package/lib/commonjs/utils/common.js +0 -20
  311. package/lib/commonjs/utils/common.js.map +0 -1
  312. package/lib/commonjs/utils/mediaQueries.js +0 -189
  313. package/lib/commonjs/utils/mediaQueries.js.map +0 -1
  314. package/lib/commonjs/utils/normalizeStyles.js +0 -10
  315. package/lib/commonjs/utils/normalizeStyles.js.map +0 -1
  316. package/lib/commonjs/utils/normalizeStyles.web.js.map +0 -1
  317. package/lib/commonjs/utils/normalizer.js.map +0 -1
  318. package/lib/module/UnistylesTheme.js +0 -12
  319. package/lib/module/UnistylesTheme.js.map +0 -1
  320. package/lib/module/createUnistyles.js +0 -50
  321. package/lib/module/createUnistyles.js.map +0 -1
  322. package/lib/module/hooks/useDimensions.js +0 -3
  323. package/lib/module/hooks/useDimensions.js.map +0 -1
  324. package/lib/module/hooks/useDimensions.web.js +0 -27
  325. package/lib/module/hooks/useDimensions.web.js.map +0 -1
  326. package/lib/module/types/mediaQueries.js +0 -2
  327. package/lib/module/utils/common.js +0 -12
  328. package/lib/module/utils/common.js.map +0 -1
  329. package/lib/module/utils/mediaQueries.js +0 -176
  330. package/lib/module/utils/mediaQueries.js.map +0 -1
  331. package/lib/module/utils/normalizeStyles.js +0 -3
  332. package/lib/module/utils/normalizeStyles.js.map +0 -1
  333. package/lib/module/utils/normalizeStyles.web.js.map +0 -1
  334. package/lib/module/utils/normalizer.js.map +0 -1
  335. package/lib/typescript/examples/expo/src/App.d.ts +0 -3
  336. package/lib/typescript/examples/expo/src/App.d.ts.map +0 -1
  337. package/lib/typescript/examples/expo/src/examples/Breakpoints.d.ts +0 -3
  338. package/lib/typescript/examples/expo/src/examples/Breakpoints.d.ts.map +0 -1
  339. package/lib/typescript/examples/expo/src/examples/EmptyStyles.d.ts +0 -3
  340. package/lib/typescript/examples/expo/src/examples/EmptyStyles.d.ts.map +0 -1
  341. package/lib/typescript/examples/expo/src/examples/Extreme.d.ts +0 -7
  342. package/lib/typescript/examples/expo/src/examples/Extreme.d.ts.map +0 -1
  343. package/lib/typescript/examples/expo/src/examples/MediaQueries.d.ts +0 -3
  344. package/lib/typescript/examples/expo/src/examples/MediaQueries.d.ts.map +0 -1
  345. package/lib/typescript/examples/expo/src/examples/Memoization.d.ts +0 -3
  346. package/lib/typescript/examples/expo/src/examples/Memoization.d.ts.map +0 -1
  347. package/lib/typescript/examples/expo/src/examples/Minimal.d.ts +0 -3
  348. package/lib/typescript/examples/expo/src/examples/Minimal.d.ts.map +0 -1
  349. package/lib/typescript/examples/expo/src/examples/MinimalWithCreateStyleSheet.d.ts +0 -3
  350. package/lib/typescript/examples/expo/src/examples/MinimalWithCreateStyleSheet.d.ts.map +0 -1
  351. package/lib/typescript/examples/expo/src/examples/PlatformColors.d.ts +0 -3
  352. package/lib/typescript/examples/expo/src/examples/PlatformColors.d.ts.map +0 -1
  353. package/lib/typescript/examples/expo/src/examples/Theme.d.ts +0 -3
  354. package/lib/typescript/examples/expo/src/examples/Theme.d.ts.map +0 -1
  355. package/lib/typescript/examples/expo/src/examples/index.d.ts +0 -9
  356. package/lib/typescript/examples/expo/src/examples/index.d.ts.map +0 -1
  357. package/lib/typescript/examples/expo/src/index.d.ts +0 -2
  358. package/lib/typescript/examples/expo/src/index.d.ts.map +0 -1
  359. package/lib/typescript/examples/expo/src/styles/breakpoints.d.ts +0 -8
  360. package/lib/typescript/examples/expo/src/styles/breakpoints.d.ts.map +0 -1
  361. package/lib/typescript/examples/expo/src/styles/index.d.ts +0 -46
  362. package/lib/typescript/examples/expo/src/styles/index.d.ts.map +0 -1
  363. package/lib/typescript/examples/expo/src/styles/theme.d.ts +0 -24
  364. package/lib/typescript/examples/expo/src/styles/theme.d.ts.map +0 -1
  365. package/lib/typescript/src/UnistylesTheme.d.ts +0 -9
  366. package/lib/typescript/src/UnistylesTheme.d.ts.map +0 -1
  367. package/lib/typescript/src/createUnistyles.d.ts +0 -10
  368. package/lib/typescript/src/createUnistyles.d.ts.map +0 -1
  369. package/lib/typescript/src/hooks/useDimensions.d.ts +0 -3
  370. package/lib/typescript/src/hooks/useDimensions.d.ts.map +0 -1
  371. package/lib/typescript/src/hooks/useDimensions.web.d.ts +0 -3
  372. package/lib/typescript/src/hooks/useDimensions.web.d.ts.map +0 -1
  373. package/lib/typescript/src/types/mediaQueries.d.ts +0 -8
  374. package/lib/typescript/src/types/mediaQueries.d.ts.map +0 -1
  375. package/lib/typescript/src/utils/common.d.ts +0 -7
  376. package/lib/typescript/src/utils/common.d.ts.map +0 -1
  377. package/lib/typescript/src/utils/mediaQueries.d.ts +0 -130
  378. package/lib/typescript/src/utils/mediaQueries.d.ts.map +0 -1
  379. package/lib/typescript/src/utils/normalizeStyles.d.ts +0 -2
  380. package/lib/typescript/src/utils/normalizeStyles.d.ts.map +0 -1
  381. package/lib/typescript/src/utils/normalizeStyles.web.d.ts +0 -5
  382. package/lib/typescript/src/utils/normalizeStyles.web.d.ts.map +0 -1
  383. package/lib/typescript/src/utils/normalizer.d.ts.map +0 -1
  384. package/src/UnistylesTheme.tsx +0 -17
  385. package/src/__tests__/createUnistyles.spec.tsx +0 -192
  386. package/src/createUnistyles.ts +0 -70
  387. package/src/hooks/useDimensions.ts +0 -4
  388. package/src/hooks/useDimensions.web.ts +0 -34
  389. package/src/types/mediaQueries.ts +0 -10
  390. package/src/utils/common.ts +0 -14
  391. package/src/utils/mediaQueries.ts +0 -201
  392. package/src/utils/normalizeStyles.ts +0 -2
  393. /package/lib/commonjs/{utils → normalizer}/module.d.js +0 -0
  394. /package/lib/module/{utils → normalizer}/module.d.js +0 -0
  395. /package/lib/typescript/src/{utils → normalizer}/normalizer.d.ts +0 -0
  396. /package/src/{utils → normalizer}/module.d.ts +0 -0
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023 Jacek Pudysz
3
+ Copyright (c) 2023-2024 Jacek Pudysz
4
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
5
  of this software and associated documentation files (the "Software"), to deal
6
6
  in the Software without restriction, including without limitation the rights
package/README.md CHANGED
@@ -1,55 +1,47 @@
1
- [<img alt="react-native-unistyles" src="assets/banner.png">](https://codemask.com)
2
-
3
-
4
- <picture>
5
- <source media="(prefers-color-scheme: dark)" srcset="assets/uni-dark.svg">
6
- <img alt="react-native-unistyles" src="assets/uni-light.svg">
7
- </picture>
1
+ [<img alt="react-native-unistyles" src="assets/banner.png">](https://reactnativeunistyles.vercel.app/)
8
2
 
9
3
  ![GitHub package.json version](https://img.shields.io/github/package-json/v/jpudysz/react-native-unistyles?style=for-the-badge)
10
- [![npm downloads](https://img.shields.io/npm/dm/react-native-unistyles.svg?style=for-the-badge)](https://www.npmjs.com/package/react-native-unistyles)
11
- ![Platform - Android and iOS](https://img.shields.io/badge/platform-Android%20%7C%20IOS%20%7C%20SSR%20%7C%20Web-blue.svg?style=for-the-badge)
12
- [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
4
+ [![npm downloads](https://img.shields.io/npm/dt/react-native-unistyles?style=for-the-badge)](https://www.npmjs.com/package/react-native-unistyles)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-44CD11.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
6
+ <br />
7
+ [![platform - expo](https://img.shields.io/badge/Expo-fff?style=for-the-badge&logo=expo&logoColor=black)](https://docs.expo.dev/)
8
+ [![platform - web](https://img.shields.io/badge/React_Native_Web-white?logo=react&logoColor=57BDDA&style=for-the-badge)](https://www.w3.org/)
9
+ [![platform - ios](https://img.shields.io/badge/iOS-000?logo=apple&style=for-the-badge)](https://developer.apple.com/ios/)
10
+ [![platform - macos](https://img.shields.io/badge/macOS-000?logo=apple&style=for-the-badge)](https://developer.apple.com/macos/)
11
+ [![platform - ssr](https://img.shields.io/badge/SSR-black?style=for-the-badge&logo=next.js&logoColor=white)](https://nextjs.org/)
12
+ [![platform - android](https://img.shields.io/badge/Android-44CD11?style=for-the-badge&logo=android&logoColor=white)](https://developer.android.com/)
13
+
14
+ ## [Documentation](https://reactnativeunistyles.vercel.app/)
15
+ - [Start here](https://reactnativeunistyles.vercel.app/start/introduction/)
16
+ - [API](https://reactnativeunistyles.vercel.app/reference/create-stylesheet/)
17
+ - [Show case](https://reactnativeunistyles.vercel.app/show-case/projects/)
18
+ - [Examples](https://reactnativeunistyles.vercel.app/examples/all/)
13
19
 
14
20
  ## Features
15
- - Blazing fast, adds around ~3ms on top of StyleSheet*
21
+ - 🚀 Shared core with C++ and JSI bindings
22
+ - 🌉 Supports new architecture
23
+ - 🔥 Crazy performance, adds under 0.1 ms to your StyleSheet
16
24
  - 🎳 Share up to 100% of your styles across platforms in monorepo
17
- - 🎯 Doesn't introduce new components
18
- - 🖥️ Supports custom breakpoints and css-like media queries
19
- - 🎨 Access theme in your StyleSheets and components
20
- - 🪄 Supports dynamic functions to access values from JSX
21
- - 🥳 Compatible with Expo, Expo Go, Bare React Native, React Native Web and SSR
25
+ - 🎯 Doesn't introduce new components, everything is packed in one hook
26
+ - ⚛️ No React Context
27
+ - 🖥️ Supports custom breakpoints, css-like media queries and variants
28
+ - 🎨 Register multiple themes and change them with single function call
29
+ - 🥳 Compatible with Expo, Bare React Native, React Native Web, React Native macOS and SSR
22
30
  - 🛡️ ~99% Test coverage
31
+ - 🔌 Extend stylesheets with your own plugins
23
32
  - ⚔️ No 3rd party dependencies
24
-
25
- *-based on this [benchmark](https://github.com/efstathiosntonas/react-native-style-libraries-benchmark)
33
+ - and much much more!
26
34
 
27
35
  ## Installation
28
36
 
29
- ```cmd
37
+ ```shell
30
38
  yarn add react-native-unistyles
31
39
  ```
32
40
 
33
- ## [Documentation](https://reactnativeunistyles.vercel.app/)
34
- - [Start here](https://reactnativeunistyles.vercel.app/start/setup/)
35
- - [References](https://reactnativeunistyles.vercel.app/reference/create-stylesheet/)
36
- - [Examples](https://reactnativeunistyles.vercel.app/example/breakpoints/)
37
-
38
- ## Faster, better and simpler - v.2.0 🚀
39
-
40
- There is ongoing work on branch [2.0](https://github.com/jpudysz/react-native-unistyles/tree/2.0).
41
-
42
- ---
43
-
44
- Join early testers and discussion [here](https://github.com/jpudysz/react-native-unistyles/discussions/41).
45
-
46
- ```cmd
47
- yarn add react-native-unistyles@next
48
- ```
49
-
50
- ## Blog post
41
+ ## Discord
42
+ Looking for help or you want to chat with me?
51
43
 
52
- Read about what drove me to create this library in this blog post [here](https://www.reactnativecrossroads.com/posts/level-up-react-native-styles).
44
+ [Join Discord](https://discord.gg/akGHf27P4C)
53
45
 
54
46
  ## Sponsor my work
55
47
 
@@ -0,0 +1,27 @@
1
+ cmake_minimum_required(VERSION 3.9.0)
2
+
3
+ project(unistyles)
4
+
5
+ add_library(unistyles
6
+ SHARED
7
+ ../cxx/UnistylesRuntime.cpp
8
+ ./src/main/cxx/cpp-adapter.cpp
9
+ )
10
+
11
+ include_directories(
12
+ ../cxx
13
+ )
14
+
15
+ set_target_properties(unistyles PROPERTIES
16
+ CXX_STANDARD 17
17
+ CXX_STANDARD_REQUIRED ON
18
+ CXX_EXTENSIONS OFF
19
+ POSITION_INDEPENDENT_CODE ON
20
+ )
21
+
22
+ find_package(ReactAndroid REQUIRED CONFIG)
23
+
24
+ target_link_libraries(unistyles
25
+ ReactAndroid::jsi
26
+ android
27
+ )
@@ -0,0 +1,75 @@
1
+ buildscript {
2
+ ext.safeExtGet = {prop, fallback ->
3
+ rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
4
+ }
5
+ repositories {
6
+ google()
7
+ gradlePluginPortal()
8
+ }
9
+ dependencies {
10
+ classpath("com.android.tools.build:gradle:7.3.1")
11
+ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.22")
12
+ }
13
+ }
14
+
15
+ apply plugin: 'com.android.library'
16
+ apply plugin: 'org.jetbrains.kotlin.android'
17
+
18
+ def resolveBuildType() {
19
+ Gradle gradle = getGradle()
20
+ String tskReqStr = gradle.getStartParameter().getTaskRequests()['args'].toString()
21
+
22
+ return tskReqStr.contains('Release') ? 'release' : 'debug'
23
+ }
24
+
25
+ def isNewArchitectureEnabled() {
26
+ return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
27
+ }
28
+
29
+ if (isNewArchitectureEnabled()) {
30
+ apply plugin: 'com.facebook.react'
31
+ }
32
+
33
+ android {
34
+ compileSdkVersion safeExtGet('compileSdkVersion', 33)
35
+ namespace "com.unistyles"
36
+
37
+ defaultConfig {
38
+ buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
39
+ minSdkVersion safeExtGet('minSdkVersion', 21)
40
+ externalNativeBuild {
41
+ cmake {
42
+ arguments "-DANDROID_STL=c++_shared"
43
+ }
44
+ }
45
+ }
46
+
47
+ buildFeatures {
48
+ prefab true
49
+ }
50
+
51
+ externalNativeBuild {
52
+ cmake {
53
+ path "CMakeLists.txt"
54
+ }
55
+ }
56
+
57
+ packagingOptions {
58
+ doNotStrip resolveBuildType() == 'debug' ? "**/**/*.so" : ''
59
+ excludes = [
60
+ "META-INF",
61
+ "META-INF/**",
62
+ "**/libjsi.so",
63
+ "**/libc++_shared.so"
64
+ ]
65
+ }
66
+ }
67
+
68
+ repositories {
69
+ mavenCentral()
70
+ google()
71
+ }
72
+
73
+ dependencies {
74
+ implementation 'com.facebook.react:react-native'
75
+ }
@@ -0,0 +1,132 @@
1
+ #include <jni.h>
2
+ #include <jsi/jsi.h>
3
+ #include "UnistylesRuntime.h"
4
+
5
+ using namespace facebook;
6
+
7
+ static jobject unistylesModule = nullptr;
8
+ std::shared_ptr<UnistylesRuntime> unistylesRuntime = nullptr;
9
+
10
+ void throwKotlinException(
11
+ JNIEnv *env,
12
+ const char *message
13
+ ) {
14
+ jclass runtimeExceptionClass = env->FindClass("java/lang/RuntimeException");
15
+
16
+ if (runtimeExceptionClass != nullptr) {
17
+ env->ThrowNew(runtimeExceptionClass, message);
18
+ env->DeleteLocalRef(runtimeExceptionClass);
19
+ }
20
+ }
21
+
22
+ extern "C"
23
+ JNIEXPORT void JNICALL
24
+ Java_com_unistyles_UnistylesModule_nativeInstall(
25
+ JNIEnv *env,
26
+ jobject thiz,
27
+ jlong jsi,
28
+ jint screenWidth,
29
+ jint screenHeight,
30
+ jstring colorScheme,
31
+ jstring contentSizeCategory
32
+ ) {
33
+ auto runtime = reinterpret_cast<facebook::jsi::Runtime *>(jsi);
34
+
35
+ if (unistylesModule == nullptr) {
36
+ unistylesModule = env->NewGlobalRef(thiz);
37
+ }
38
+
39
+ if (runtime == nullptr || unistylesModule == nullptr) {
40
+ return throwKotlinException(env, "Something went wrong while initializing UnistylesModule");
41
+ }
42
+
43
+ const char *colorSchemeChars = env->GetStringUTFChars(colorScheme, nullptr);
44
+ std::string colorSchemeStr(colorSchemeChars);
45
+ env->ReleaseStringUTFChars(colorScheme, colorSchemeChars);
46
+
47
+ const char *contentSizeCategoryChars = env->GetStringUTFChars(contentSizeCategory, nullptr);
48
+ std::string contentSizeCategoryStr(contentSizeCategoryChars);
49
+ env->ReleaseStringUTFChars(contentSizeCategory, contentSizeCategoryChars);
50
+
51
+ unistylesRuntime = std::make_shared<UnistylesRuntime>(
52
+ screenWidth,
53
+ screenHeight,
54
+ colorSchemeStr,
55
+ contentSizeCategoryStr
56
+ );
57
+
58
+ unistylesRuntime->onThemeChange([=](const std::string &theme) {
59
+ jstring themeStr = env->NewStringUTF(theme.c_str());
60
+ jclass cls = env->GetObjectClass(unistylesModule);
61
+ jmethodID methodId = env->GetMethodID(cls, "onThemeChange", "(Ljava/lang/String;)V");
62
+
63
+ env->CallVoidMethod(unistylesModule, methodId, themeStr);
64
+ env->DeleteLocalRef(themeStr);
65
+ env->DeleteLocalRef(cls);
66
+ });
67
+
68
+ unistylesRuntime->onLayoutChange([=](const std::string &breakpoint, const std::string &orientation, int width, int height) {
69
+ jstring breakpointStr = env->NewStringUTF(breakpoint.c_str());
70
+ jstring orientationStr = env->NewStringUTF(orientation.c_str());
71
+ jclass cls = env->GetObjectClass(unistylesModule);
72
+ jmethodID methodId = env->GetMethodID(cls, "onLayoutChange", "(Ljava/lang/String;Ljava/lang/String;II)V");
73
+
74
+ env->CallVoidMethod(unistylesModule, methodId, breakpointStr, orientationStr, width, height);
75
+ env->DeleteLocalRef(breakpointStr);
76
+ env->DeleteLocalRef(orientationStr);
77
+ env->DeleteLocalRef(cls);
78
+ });
79
+
80
+ unistylesRuntime->onPluginChange([=]() {
81
+ jclass cls = env->GetObjectClass(unistylesModule);
82
+ jmethodID methodId = env->GetMethodID(cls, "onPluginChange", "()V");
83
+
84
+ env->CallVoidMethod(unistylesModule, methodId);
85
+ env->DeleteLocalRef(cls);
86
+ });
87
+
88
+ unistylesRuntime->onContentSizeCategoryChange([=](const std::string &contentSizeCategory) {
89
+ jstring contentSizeCategoryStr = env->NewStringUTF(contentSizeCategory.c_str());
90
+ jclass cls = env->GetObjectClass(unistylesModule);
91
+ jmethodID methodId = env->GetMethodID(cls, "onContentSizeCategoryChange", "(Ljava/lang/String;)V");
92
+
93
+ env->CallVoidMethod(unistylesModule, methodId, contentSizeCategoryStr);
94
+ env->DeleteLocalRef(contentSizeCategoryStr);
95
+ env->DeleteLocalRef(cls);
96
+ });
97
+
98
+ jsi::Object hostObject = jsi::Object::createFromHostObject(*runtime, unistylesRuntime);
99
+
100
+ runtime->global().setProperty(*runtime, "__UNISTYLES__", std::move(hostObject));
101
+ }
102
+
103
+ extern "C"
104
+ JNIEXPORT void JNICALL
105
+ Java_com_unistyles_UnistylesModule_nativeDestroy(JNIEnv *env, jobject thiz) {
106
+ unistylesRuntime.reset();
107
+ unistylesModule = nullptr;
108
+ }
109
+
110
+ extern "C"
111
+ JNIEXPORT void JNICALL
112
+ Java_com_unistyles_UnistylesModule_nativeOnOrientationChange(JNIEnv *env, jobject thiz, jint width, jint height) {
113
+ if (unistylesRuntime != nullptr) {
114
+ unistylesRuntime->handleScreenSizeChange(width, height);
115
+ }
116
+ }
117
+
118
+ extern "C"
119
+ JNIEXPORT void JNICALL
120
+ Java_com_unistyles_UnistylesModule_nativeOnAppearanceChange(JNIEnv *env, jobject thiz, jstring colorScheme) {
121
+ if (unistylesRuntime != nullptr) {
122
+ unistylesRuntime->handleAppearanceChange(env->GetStringUTFChars(colorScheme, nullptr));
123
+ }
124
+ }
125
+
126
+ extern "C"
127
+ JNIEXPORT void JNICALL
128
+ Java_com_unistyles_UnistylesModule_nativeOnContentSizeCategoryChange(JNIEnv *env, jobject thiz, jstring contentSizeCategory) {
129
+ if (unistylesRuntime != nullptr) {
130
+ unistylesRuntime->handleContentSizeCategoryChange(env->GetStringUTFChars(contentSizeCategory, nullptr));
131
+ }
132
+ }
@@ -0,0 +1,189 @@
1
+ package com.unistyles
2
+
3
+ import android.content.BroadcastReceiver
4
+ import android.content.Context
5
+ import android.content.Intent
6
+ import android.content.IntentFilter
7
+ import android.content.res.Configuration
8
+ import android.os.Handler
9
+ import android.os.Looper
10
+ import android.util.Log
11
+ import com.facebook.react.bridge.Arguments
12
+ import com.facebook.react.bridge.LifecycleEventListener
13
+ import com.facebook.react.bridge.ReactApplicationContext
14
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
15
+ import com.facebook.react.bridge.ReactMethod
16
+ import com.facebook.react.modules.core.DeviceEventManagerModule
17
+
18
+
19
+ class UnistylesModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext), LifecycleEventListener {
20
+ private val configurationChangeReceiver = object : BroadcastReceiver() {
21
+ override fun onReceive(context: Context, intent: Intent) {
22
+ if (intent.action == Intent.ACTION_CONFIGURATION_CHANGED) {
23
+ Handler(Looper.getMainLooper()).postDelayed({
24
+ this@UnistylesModule.onConfigChange()
25
+ }, 10)
26
+ }
27
+ }
28
+ }
29
+
30
+ override fun getName() = NAME
31
+ companion object {
32
+ const val NAME = "Unistyles"
33
+ }
34
+
35
+ //region Lifecycle
36
+ init {
37
+ reactApplicationContext.registerReceiver(configurationChangeReceiver, IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED))
38
+ }
39
+
40
+ override fun onCatalystInstanceDestroy() {
41
+ reactApplicationContext.unregisterReceiver(configurationChangeReceiver)
42
+ this.nativeDestroy()
43
+ }
44
+
45
+ //endregion
46
+ //region Event handlers
47
+ private fun onConfigChange() {
48
+ val config = this.getConfig()
49
+
50
+ reactApplicationContext.runOnJSQueueThread {
51
+ this.nativeOnOrientationChange(
52
+ config["width"] as Int,
53
+ config["height"] as Int
54
+ )
55
+ this.nativeOnAppearanceChange(
56
+ config["colorScheme"] as String
57
+ )
58
+ this.nativeOnContentSizeCategoryChange(config["contentSizeCategory"] as String)
59
+ }
60
+ }
61
+
62
+ private fun getConfig(): Map<String, Any> {
63
+ val displayMetrics = reactApplicationContext.resources.displayMetrics
64
+ val colorScheme = when (reactApplicationContext.resources.configuration.uiMode.and(Configuration.UI_MODE_NIGHT_MASK)) {
65
+ Configuration.UI_MODE_NIGHT_YES -> "dark"
66
+ Configuration.UI_MODE_NIGHT_NO -> "light"
67
+ else -> "unspecified"
68
+ }
69
+ val fontScale = reactApplicationContext.resources.configuration.fontScale
70
+ val contentSizeCategory = when {
71
+ fontScale <= 0.85f -> "Small"
72
+ fontScale <= 1.0f -> "Default"
73
+ fontScale <= 1.15f -> "Large"
74
+ fontScale <= 1.3f -> "ExtraLarge"
75
+ else -> "Huge"
76
+ }
77
+
78
+ return mapOf(
79
+ "width" to (displayMetrics.widthPixels / displayMetrics.density).toInt(),
80
+ "height" to (displayMetrics.heightPixels / displayMetrics.density).toInt(),
81
+ "colorScheme" to colorScheme,
82
+ "contentSizeCategory" to contentSizeCategory
83
+ )
84
+ }
85
+
86
+ //endregion
87
+ //region Core
88
+ @ReactMethod(isBlockingSynchronousMethod = true)
89
+ fun install(): Boolean {
90
+ return try {
91
+ System.loadLibrary("unistyles")
92
+ val config = this.getConfig()
93
+
94
+ this.reactApplicationContext.javaScriptContextHolder?.let {
95
+ this.nativeInstall(
96
+ it.get(),
97
+ config["width"] as Int,
98
+ config["height"] as Int,
99
+ config["colorScheme"] as String,
100
+ config["contentSizeCategory"] as String
101
+ )
102
+
103
+ Log.i(NAME, "Installed Unistyles \uD83E\uDD84!")
104
+
105
+ return true
106
+ }
107
+
108
+ false
109
+ } catch (e: Exception) {
110
+ false
111
+ }
112
+ }
113
+
114
+ private external fun nativeInstall(jsi: Long, width: Int, height: Int, colorScheme: String, contentSizeCategory: String)
115
+ private external fun nativeDestroy()
116
+ private external fun nativeOnOrientationChange(width: Int, height: Int)
117
+ private external fun nativeOnAppearanceChange(colorScheme: String)
118
+ private external fun nativeOnContentSizeCategoryChange(contentSizeCategory: String)
119
+
120
+ //endregion
121
+ //region Event emitter
122
+ private fun onLayoutChange(breakpoint: String, orientation: String, width: Int, height: Int) {
123
+ val body = Arguments.createMap().apply {
124
+ putString("type", "layout")
125
+ putMap("payload", Arguments.createMap().apply {
126
+ putString("breakpoint", breakpoint)
127
+ putString("orientation", orientation)
128
+ putMap("screen", Arguments.createMap().apply {
129
+ putInt("width", width)
130
+ putInt("height", height)
131
+ })
132
+ })
133
+ }
134
+
135
+ reactApplicationContext
136
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
137
+ .emit("__unistylesOnChange", body)
138
+ }
139
+
140
+ private fun onThemeChange(themeName: String) {
141
+ val body = Arguments.createMap().apply {
142
+ putString("type", "theme")
143
+ putMap("payload", Arguments.createMap().apply {
144
+ putString("themeName", themeName)
145
+ })
146
+ }
147
+
148
+ reactApplicationContext
149
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
150
+ .emit("__unistylesOnChange", body)
151
+ }
152
+
153
+ private fun onPluginChange() {
154
+ val body = Arguments.createMap().apply {
155
+ putString("type", "plugin")
156
+ }
157
+
158
+ reactApplicationContext
159
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
160
+ .emit("__unistylesOnChange", body)
161
+ }
162
+
163
+ private fun onContentSizeCategoryChange(contentSizeCategory: String) {
164
+ val body = Arguments.createMap().apply {
165
+ putString("type", "dynamicTypeSize")
166
+ putMap("payload", Arguments.createMap().apply {
167
+ putString("contentSizeCategory", contentSizeCategory)
168
+ })
169
+ }
170
+
171
+ reactApplicationContext
172
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
173
+ .emit("__unistylesOnChange", body)
174
+ }
175
+
176
+ @ReactMethod
177
+ fun addListener(eventName: String?) = Unit
178
+
179
+ @ReactMethod
180
+ fun removeListeners(count: Double) = Unit
181
+ override fun onHostResume() {
182
+ this.onConfigChange()
183
+ }
184
+
185
+ override fun onHostPause() {}
186
+
187
+ override fun onHostDestroy() {}
188
+ //endregion
189
+ }
@@ -0,0 +1,18 @@
1
+ package com.unistyles
2
+
3
+ import android.view.View
4
+ import com.facebook.react.ReactPackage
5
+ import com.facebook.react.bridge.NativeModule
6
+ import com.facebook.react.bridge.ReactApplicationContext
7
+ import com.facebook.react.uimanager.ReactShadowNode
8
+ import com.facebook.react.uimanager.ViewManager
9
+
10
+ class UnistylesPackage: ReactPackage {
11
+ override fun createNativeModules(reactContext: ReactApplicationContext): MutableList<NativeModule> {
12
+ return mutableListOf(UnistylesModule(reactContext))
13
+ }
14
+
15
+ override fun createViewManagers(reactContext: ReactApplicationContext): MutableList<ViewManager<View, ReactShadowNode<*>>> {
16
+ return mutableListOf()
17
+ }
18
+ }