react-native-unistyles 3.0.0-beta.6 → 3.0.0-beta.8

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 (277) hide show
  1. package/README.md +19 -0
  2. package/android/CMakeLists.txt +2 -1
  3. package/android/src/main/java/com/unistyles/NativePlatform+android.kt +4 -0
  4. package/android/src/main/java/com/unistyles/NativePlatform+insets.kt +29 -2
  5. package/android/src/main/java/com/unistyles/NativePlatform+listener.kt +4 -0
  6. package/android/src/main/java/com/unistyles/UnistylesModule.kt +5 -0
  7. package/cxx/common/Helpers.h +85 -0
  8. package/cxx/core/HashGenerator.cpp +1 -1
  9. package/cxx/core/HostUnistyle.cpp +28 -4
  10. package/cxx/core/HostUnistyle.h +1 -0
  11. package/cxx/core/UnistyleWrapper.h +6 -6
  12. package/cxx/core/UnistylesCommitHook.cpp +20 -17
  13. package/cxx/core/UnistylesMountHook.cpp +2 -2
  14. package/cxx/core/UnistylesMountHook.h +1 -4
  15. package/cxx/core/UnistylesRegistry.cpp +8 -6
  16. package/cxx/hybridObjects/HybridShadowRegistry.cpp +2 -5
  17. package/cxx/hybridObjects/HybridStyleSheet.cpp +1 -1
  18. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +5 -1
  19. package/cxx/parser/Parser.cpp +79 -14
  20. package/cxx/shadowTree/ShadowTrafficController.h +10 -4
  21. package/cxx/shadowTree/ShadowTreeManager.cpp +38 -35
  22. package/lib/commonjs/components/native/Animated.js +2 -2
  23. package/lib/commonjs/components/native/Animated.js.map +1 -1
  24. package/lib/commonjs/components/native/ImageBackground.js +29 -33
  25. package/lib/commonjs/components/native/ImageBackground.js.map +1 -1
  26. package/lib/commonjs/components/native/NativeText.native.js.map +1 -1
  27. package/lib/commonjs/components/native/NativeView.native.js.map +1 -1
  28. package/lib/commonjs/components/native/Pressable.js +1 -1
  29. package/lib/commonjs/components/native/Pressable.js.map +1 -1
  30. package/lib/commonjs/components/native/Pressable.native.js +17 -10
  31. package/lib/commonjs/components/native/Pressable.native.js.map +1 -1
  32. package/lib/commonjs/core/createUnistylesElement.js +5 -5
  33. package/lib/commonjs/core/createUnistylesElement.js.map +1 -1
  34. package/lib/commonjs/core/createUnistylesElement.native.js +5 -1
  35. package/lib/commonjs/core/createUnistylesElement.native.js.map +1 -1
  36. package/lib/commonjs/core/createUnistylesImageBackground.js +5 -1
  37. package/lib/commonjs/core/createUnistylesImageBackground.js.map +1 -1
  38. package/lib/commonjs/core/useProxifiedUnistyles/useProxifiedUnistyles.js +3 -3
  39. package/lib/commonjs/core/useProxifiedUnistyles/useProxifiedUnistyles.js.map +1 -1
  40. package/lib/commonjs/core/warn.js +1 -1
  41. package/lib/commonjs/core/withUnistyles/withUnistyles.js +2 -2
  42. package/lib/commonjs/core/withUnistyles/withUnistyles.js.map +1 -1
  43. package/lib/commonjs/core/withUnistyles/withUnistyles.native.js +18 -9
  44. package/lib/commonjs/core/withUnistyles/withUnistyles.native.js.map +1 -1
  45. package/lib/commonjs/hooks/useMedia.native.js +1 -1
  46. package/lib/commonjs/hooks/useMedia.native.js.map +1 -1
  47. package/lib/commonjs/mq.js.map +1 -1
  48. package/lib/commonjs/server/getServerUnistyles.js +1 -1
  49. package/lib/commonjs/server/getServerUnistyles.js.map +1 -1
  50. package/lib/commonjs/server/hydrateServerUnistyles.js +1 -1
  51. package/lib/commonjs/server/hydrateServerUnistyles.js.map +1 -1
  52. package/lib/commonjs/server/resetServerUnistyles.js +1 -1
  53. package/lib/commonjs/server/resetServerUnistyles.js.map +1 -1
  54. package/lib/commonjs/server/useServerUnistyles.js +2 -2
  55. package/lib/commonjs/server/useServerUnistyles.js.map +1 -1
  56. package/lib/commonjs/specs/ShadowRegistry/index.js +1 -1
  57. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  58. package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
  59. package/lib/commonjs/specs/StyleSheet/index.js +1 -1
  60. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  61. package/lib/commonjs/specs/UnistylesRuntime/index.js +1 -1
  62. package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
  63. package/lib/commonjs/specs/index.native.js +3 -3
  64. package/lib/commonjs/specs/index.native.js.map +1 -1
  65. package/lib/commonjs/web/convert/index.js +4 -4
  66. package/lib/commonjs/web/convert/index.js.map +1 -1
  67. package/lib/commonjs/web/convert/object/boxShadow.js +4 -4
  68. package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -1
  69. package/lib/commonjs/web/convert/object/filter.js +3 -3
  70. package/lib/commonjs/web/convert/object/filter.js.map +1 -1
  71. package/lib/commonjs/web/convert/object/transform.js +1 -1
  72. package/lib/commonjs/web/convert/object/transform.js.map +1 -1
  73. package/lib/commonjs/web/convert/utils.js.map +1 -1
  74. package/lib/commonjs/web/index.js +1 -1
  75. package/lib/commonjs/web/index.js.map +1 -1
  76. package/lib/commonjs/web/registry.js +1 -1
  77. package/lib/commonjs/web/registry.js.map +1 -1
  78. package/lib/commonjs/web/runtime.js.map +1 -1
  79. package/lib/commonjs/web/shadowRegistry.js +1 -1
  80. package/lib/commonjs/web/shadowRegistry.js.map +1 -1
  81. package/lib/commonjs/web/state.js +1 -1
  82. package/lib/commonjs/web/state.js.map +1 -1
  83. package/lib/commonjs/web/utils/common.js +1 -1
  84. package/lib/commonjs/web/utils/unistyle.js +5 -5
  85. package/lib/commonjs/web/utils/unistyle.js.map +1 -1
  86. package/lib/module/components/native/Animated.js +2 -2
  87. package/lib/module/components/native/Animated.js.map +1 -1
  88. package/lib/module/components/native/ImageBackground.js +29 -33
  89. package/lib/module/components/native/ImageBackground.js.map +1 -1
  90. package/lib/module/components/native/NativeText.native.js.map +1 -1
  91. package/lib/module/components/native/NativeView.native.js.map +1 -1
  92. package/lib/module/components/native/Pressable.js +1 -1
  93. package/lib/module/components/native/Pressable.js.map +1 -1
  94. package/lib/module/components/native/Pressable.native.js +17 -10
  95. package/lib/module/components/native/Pressable.native.js.map +1 -1
  96. package/lib/module/core/createUnistylesElement.js +3 -3
  97. package/lib/module/core/createUnistylesElement.js.map +1 -1
  98. package/lib/module/core/createUnistylesElement.native.js +5 -1
  99. package/lib/module/core/createUnistylesElement.native.js.map +1 -1
  100. package/lib/module/core/createUnistylesImageBackground.js +5 -1
  101. package/lib/module/core/createUnistylesImageBackground.js.map +1 -1
  102. package/lib/module/core/useProxifiedUnistyles/useProxifiedUnistyles.js +3 -3
  103. package/lib/module/core/useProxifiedUnistyles/useProxifiedUnistyles.js.map +1 -1
  104. package/lib/module/core/warn.js +1 -1
  105. package/lib/module/core/withUnistyles/withUnistyles.js +2 -2
  106. package/lib/module/core/withUnistyles/withUnistyles.js.map +1 -1
  107. package/lib/module/core/withUnistyles/withUnistyles.native.js +19 -10
  108. package/lib/module/core/withUnistyles/withUnistyles.native.js.map +1 -1
  109. package/lib/module/hooks/useMedia.native.js +1 -1
  110. package/lib/module/hooks/useMedia.native.js.map +1 -1
  111. package/lib/module/mq.js.map +1 -1
  112. package/lib/module/server/getServerUnistyles.js +1 -1
  113. package/lib/module/server/getServerUnistyles.js.map +1 -1
  114. package/lib/module/server/hydrateServerUnistyles.js +1 -1
  115. package/lib/module/server/hydrateServerUnistyles.js.map +1 -1
  116. package/lib/module/server/resetServerUnistyles.js +1 -1
  117. package/lib/module/server/resetServerUnistyles.js.map +1 -1
  118. package/lib/module/server/useServerUnistyles.js +2 -2
  119. package/lib/module/server/useServerUnistyles.js.map +1 -1
  120. package/lib/module/specs/ShadowRegistry/index.js +1 -1
  121. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  122. package/lib/module/specs/StatusBar/index.js.map +1 -1
  123. package/lib/module/specs/StyleSheet/index.js +1 -1
  124. package/lib/module/specs/StyleSheet/index.js.map +1 -1
  125. package/lib/module/specs/UnistylesRuntime/index.js +1 -1
  126. package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
  127. package/lib/module/specs/index.native.js +4 -4
  128. package/lib/module/specs/index.native.js.map +1 -1
  129. package/lib/module/web/convert/index.js +5 -5
  130. package/lib/module/web/convert/index.js.map +1 -1
  131. package/lib/module/web/convert/object/boxShadow.js +2 -2
  132. package/lib/module/web/convert/object/boxShadow.js.map +1 -1
  133. package/lib/module/web/convert/object/filter.js +3 -3
  134. package/lib/module/web/convert/object/filter.js.map +1 -1
  135. package/lib/module/web/convert/object/transform.js +1 -1
  136. package/lib/module/web/convert/object/transform.js.map +1 -1
  137. package/lib/module/web/convert/utils.js.map +1 -1
  138. package/lib/module/web/index.js +1 -1
  139. package/lib/module/web/index.js.map +1 -1
  140. package/lib/module/web/registry.js +1 -1
  141. package/lib/module/web/registry.js.map +1 -1
  142. package/lib/module/web/runtime.js.map +1 -1
  143. package/lib/module/web/shadowRegistry.js +1 -1
  144. package/lib/module/web/shadowRegistry.js.map +1 -1
  145. package/lib/module/web/state.js +1 -1
  146. package/lib/module/web/state.js.map +1 -1
  147. package/lib/module/web/utils/common.js +1 -1
  148. package/lib/module/web/utils/unistyle.js +5 -5
  149. package/lib/module/web/utils/unistyle.js.map +1 -1
  150. package/lib/typescript/src/components/native/ImageBackground.d.ts.map +1 -1
  151. package/lib/typescript/src/components/native/Pressable.d.ts.map +1 -1
  152. package/lib/typescript/src/components/native/Pressable.native.d.ts.map +1 -1
  153. package/lib/typescript/src/core/createUnistylesElement.native.d.ts.map +1 -1
  154. package/lib/typescript/src/core/createUnistylesImageBackground.d.ts.map +1 -1
  155. package/lib/typescript/src/core/useProxifiedUnistyles/useProxifiedUnistyles.d.ts +2 -1
  156. package/lib/typescript/src/core/useProxifiedUnistyles/useProxifiedUnistyles.d.ts.map +1 -1
  157. package/lib/typescript/src/core/withUnistyles/withUnistyles.d.ts.map +1 -1
  158. package/lib/typescript/src/core/withUnistyles/withUnistyles.native.d.ts.map +1 -1
  159. package/lib/typescript/src/mq.d.ts +1 -1
  160. package/lib/typescript/src/mq.d.ts.map +1 -1
  161. package/lib/typescript/src/server/hydrateServerUnistyles.d.ts.map +1 -1
  162. package/lib/typescript/src/server/useServerUnistyles.d.ts.map +1 -1
  163. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  164. package/lib/typescript/src/specs/StatusBar/index.d.ts +1 -1
  165. package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
  166. package/lib/typescript/src/specs/StyleSheet/index.d.ts +1 -1
  167. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  168. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts +1 -1
  169. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
  170. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +5 -5
  171. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
  172. package/lib/typescript/src/specs/index.native.d.ts +4 -4
  173. package/lib/typescript/src/specs/index.native.d.ts.map +1 -1
  174. package/lib/typescript/src/types/breakpoints.d.ts +2 -2
  175. package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
  176. package/lib/typescript/src/types/core.d.ts +1 -1
  177. package/lib/typescript/src/types/core.d.ts.map +1 -1
  178. package/lib/typescript/src/types/stylesheet.d.ts +5 -5
  179. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
  180. package/lib/typescript/src/web/convert/object/filter.d.ts.map +1 -1
  181. package/lib/typescript/src/web/convert/object/transform.d.ts.map +1 -1
  182. package/lib/typescript/src/web/convert/types.d.ts +1 -1
  183. package/lib/typescript/src/web/convert/types.d.ts.map +1 -1
  184. package/lib/typescript/src/web/convert/utils.d.ts +2 -2
  185. package/lib/typescript/src/web/convert/utils.d.ts.map +1 -1
  186. package/lib/typescript/src/web/create.d.ts +1 -1
  187. package/lib/typescript/src/web/create.d.ts.map +1 -1
  188. package/lib/typescript/src/web/index.d.ts +1 -1
  189. package/lib/typescript/src/web/index.d.ts.map +1 -1
  190. package/lib/typescript/src/web/registry.d.ts +1 -1
  191. package/lib/typescript/src/web/registry.d.ts.map +1 -1
  192. package/lib/typescript/src/web/runtime.d.ts +1 -1
  193. package/lib/typescript/src/web/runtime.d.ts.map +1 -1
  194. package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -1
  195. package/lib/typescript/src/web/state.d.ts +1 -1
  196. package/lib/typescript/src/web/state.d.ts.map +1 -1
  197. package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -1
  198. package/nitrogen/generated/android/c++/JFunc_void_UnistylesNativeMiniRuntime.hpp +2 -2
  199. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +2 -2
  200. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +19 -19
  201. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +1 -1
  202. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_UnistylesNativeMiniRuntime.kt +7 -2
  203. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.kt +7 -2
  204. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +1 -17
  205. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/unistylesOnLoad.kt +35 -0
  206. package/nitrogen/generated/android/unistyles+autolinking.cmake +16 -0
  207. package/nitrogen/generated/ios/Unistyles+autolinking.rb +2 -0
  208. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +1 -1
  209. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +0 -1
  210. package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +3 -1
  211. package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +2 -3
  212. package/nitrogen/generated/ios/swift/HybridNativePlatformSpec_cxx.swift +18 -18
  213. package/nitrogen/generated/shared/c++/ColorScheme.hpp +1 -1
  214. package/nitrogen/generated/shared/c++/Dimensions.hpp +2 -1
  215. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +1 -1
  216. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +1 -1
  217. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +1 -1
  218. package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +1 -1
  219. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +1 -1
  220. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +1 -1
  221. package/nitrogen/generated/shared/c++/Insets.hpp +2 -1
  222. package/nitrogen/generated/shared/c++/Orientation.hpp +1 -1
  223. package/nitrogen/generated/shared/c++/UnistyleDependency.hpp +1 -1
  224. package/nitrogen/generated/shared/c++/UnistylesCxxMiniRuntime.hpp +2 -1
  225. package/nitrogen/generated/shared/c++/UnistylesNativeMiniRuntime.hpp +2 -1
  226. package/package.json +31 -19
  227. package/plugin/index.d.ts +51 -18
  228. package/plugin/index.js +791 -189
  229. package/src/components/native/Animated.tsx +2 -2
  230. package/src/components/native/ImageBackground.tsx +6 -7
  231. package/src/components/native/NativeText.native.tsx +1 -1
  232. package/src/components/native/NativeView.native.tsx +1 -1
  233. package/src/components/native/Pressable.native.tsx +22 -12
  234. package/src/components/native/Pressable.tsx +1 -1
  235. package/src/core/createUnistylesElement.native.tsx +6 -1
  236. package/src/core/createUnistylesElement.tsx +3 -3
  237. package/src/core/createUnistylesImageBackground.tsx +6 -1
  238. package/src/core/useProxifiedUnistyles/useProxifiedUnistyles.ts +4 -4
  239. package/src/core/warn.ts +1 -1
  240. package/src/core/withUnistyles/withUnistyles.native.tsx +47 -19
  241. package/src/core/withUnistyles/withUnistyles.tsx +4 -4
  242. package/src/hooks/useMedia.native.ts +1 -1
  243. package/src/mq.ts +1 -1
  244. package/src/server/getServerUnistyles.tsx +1 -1
  245. package/src/server/hydrateServerUnistyles.ts +1 -1
  246. package/src/server/resetServerUnistyles.ts +1 -1
  247. package/src/server/useServerUnistyles.tsx +2 -2
  248. package/src/specs/ShadowRegistry/index.ts +1 -0
  249. package/src/specs/StatusBar/index.ts +1 -1
  250. package/src/specs/StyleSheet/index.ts +3 -3
  251. package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +1 -1
  252. package/src/specs/UnistylesRuntime/index.ts +5 -5
  253. package/src/specs/index.native.ts +4 -4
  254. package/src/types/breakpoints.ts +2 -2
  255. package/src/types/core.ts +1 -1
  256. package/src/types/stylesheet.ts +5 -5
  257. package/src/web/convert/index.ts +5 -5
  258. package/src/web/convert/object/boxShadow.ts +2 -2
  259. package/src/web/convert/object/filter.ts +3 -3
  260. package/src/web/convert/object/transform.ts +2 -2
  261. package/src/web/convert/types.ts +1 -1
  262. package/src/web/convert/utils.ts +2 -2
  263. package/src/web/create.ts +1 -1
  264. package/src/web/index.ts +3 -3
  265. package/src/web/registry.ts +2 -2
  266. package/src/web/runtime.ts +2 -2
  267. package/src/web/shadowRegistry.ts +2 -2
  268. package/src/web/state.ts +4 -4
  269. package/src/web/utils/common.ts +1 -1
  270. package/src/web/utils/unistyle.ts +6 -6
  271. package/plugin/common.js +0 -142
  272. package/plugin/consts.js +0 -63
  273. package/plugin/exotic.js +0 -54
  274. package/plugin/import.js +0 -51
  275. package/plugin/ref.js +0 -11
  276. package/plugin/stylesheet.js +0 -239
  277. package/plugin/variants.js +0 -66
@@ -1,239 +0,0 @@
1
- const { getIdentifierNameFromExpression, getSecondPropertyName } = require('./common')
2
-
3
- const UnistyleDependency = {
4
- Theme: 0,
5
- ThemeName: 1,
6
- AdaptiveThemes: 2,
7
- Breakpoints: 3,
8
- Variants: 4,
9
- ColorScheme: 5,
10
- Dimensions: 6,
11
- Orientation: 7,
12
- ContentSizeCategory: 8,
13
- Insets: 9,
14
- PixelRatio: 10,
15
- FontScale: 11,
16
- StatusBar: 12,
17
- NavigationBar: 13,
18
- Ime: 14
19
- }
20
-
21
- function stringToUniqueId(str) {
22
- let hash = 0;
23
-
24
- for (let i = 0; i < str.length; i++) {
25
- hash = (hash << 5) - hash + str.charCodeAt(i)
26
- hash |= 0
27
- }
28
-
29
- const absHash = Math.abs(hash)
30
-
31
- return absHash % 1000000000
32
- }
33
-
34
- function isUnistylesStyleSheet(t, path, state) {
35
- const callee = path.get('callee')
36
-
37
- return (
38
- t.isMemberExpression(callee.node) &&
39
- callee.node.property.name === 'create' &&
40
- t.isIdentifier(callee.node.object) &&
41
- callee.node.object.name === state.file.styleSheetLocalName
42
- )
43
- }
44
-
45
- function isKindOfStyleSheet(t, path, state) {
46
- if (!state.file.forceProcessing) {
47
- return false
48
- }
49
-
50
- const callee = path.get('callee')
51
-
52
- return (
53
- t.isMemberExpression(callee.node) &&
54
- callee.node.property.name === 'create' &&
55
- t.isIdentifier(callee.node.object)
56
- )
57
- }
58
-
59
- function addStyleSheetTag(t, path, state) {
60
- const callee = path.get('callee')
61
- const uniqueId = stringToUniqueId(state.filename.replace(state.cwd, '')) + ++state.file.tagNumber
62
-
63
- callee.container.arguments.push(t.numericLiteral(uniqueId))
64
- }
65
-
66
- /** @param {import('./index').UnistylesPluginPass} state */
67
- function analyzeDependencies(t, state, name, unistyleObj, themeName, rtName) {
68
- const debugMessage = deps => {
69
- if (state.opts.debug) {
70
- const mappedDeps = deps
71
- .map(dep => Object.keys(UnistyleDependency).find(key => UnistyleDependency[key] === dep))
72
- .join(', ')
73
-
74
- console.log(`${state.filename.replace(`${state.file.opts.root}/`, '')}: styles.${name}: [${mappedDeps}]`)
75
- }
76
- }
77
- const unistyle = unistyleObj.properties
78
- const dependencies = []
79
-
80
- Object.values(unistyle).forEach(uni => {
81
- const identifier = getIdentifierNameFromExpression(t, uni.value)
82
-
83
- if (identifier.includes(themeName)) {
84
- dependencies.push(UnistyleDependency.Theme)
85
- }
86
-
87
- if (identifier.includes(rtName)) {
88
- const propertyNames = getSecondPropertyName(t, uni.value)
89
-
90
- propertyNames
91
- .filter(Boolean)
92
- .forEach(propertyName => {
93
- switch (propertyName) {
94
- case 'themeName': {
95
- dependencies.push(UnistyleDependency.ThemeName)
96
-
97
- return
98
- }
99
- case 'adaptiveThemes': {
100
- dependencies.push(UnistyleDependency.AdaptiveThemes)
101
-
102
- return
103
- }
104
- case 'breakpoint': {
105
- dependencies.push(UnistyleDependency.Breakpoints)
106
-
107
- return
108
- }
109
- case 'colorScheme': {
110
- dependencies.push(UnistyleDependency.ColorScheme)
111
-
112
- return
113
- }
114
- case 'screen': {
115
- dependencies.push(UnistyleDependency.Dimensions)
116
-
117
- return
118
- }
119
- case 'isPortrait':
120
- case 'isLandscape': {
121
- dependencies.push(UnistyleDependency.Orientation)
122
-
123
- return
124
- }
125
- case 'contentSizeCategory': {
126
- dependencies.push(UnistyleDependency.ContentSizeCategory)
127
-
128
- return
129
- }
130
- case 'ime': {
131
- dependencies.push(UnistyleDependency.Ime)
132
-
133
- return
134
- }
135
- case 'insets': {
136
- dependencies.push(UnistyleDependency.Insets)
137
-
138
- return
139
- }
140
- case 'pixelRatio': {
141
- dependencies.push(UnistyleDependency.PixelRatio)
142
-
143
- return
144
- }
145
- case 'fontScale': {
146
- dependencies.push(UnistyleDependency.FontScale)
147
-
148
- return
149
- }
150
- case 'statusBar': {
151
- dependencies.push(UnistyleDependency.StatusBar)
152
-
153
- return
154
- }
155
- case 'navigationBar': {
156
- dependencies.push(UnistyleDependency.NavigationBar)
157
-
158
- return
159
- }
160
- }
161
- })
162
- }
163
-
164
- if (uni.key && uni.key.name === 'variants') {
165
- dependencies.push(UnistyleDependency.Variants)
166
- }
167
-
168
- // breakpoints are too complex and are handled by C++
169
- })
170
-
171
- // add dependencies to the unistyle object if any found
172
- if (dependencies.length > 0) {
173
- const uniqueDependencies = Array.from(new Set(dependencies))
174
-
175
- debugMessage(uniqueDependencies)
176
-
177
- unistyleObj.properties.push(
178
- t.objectProperty(
179
- t.identifier('uni__dependencies'),
180
- t.arrayExpression(uniqueDependencies.map(dep => t.numericLiteral(dep)))
181
- )
182
- )
183
- }
184
- }
185
-
186
- function getUnistyles(t, property) {
187
- const propertyValue = t.isArrowFunctionExpression(property.value)
188
- ? property.value.body
189
- : property.value
190
-
191
- if (t.isObjectExpression(propertyValue)) {
192
- return [propertyValue]
193
- }
194
-
195
- if (t.isBlockStatement(propertyValue)) {
196
- // here we might have single return statement
197
- // or if-else statements with return statements
198
- return propertyValue.body
199
- .flatMap(value => {
200
- if (t.isReturnStatement(value)) {
201
- return [value]
202
- }
203
-
204
- if (!t.isIfStatement(value)) {
205
- return []
206
- }
207
-
208
- return [value.consequent, value.alternate]
209
- .filter(Boolean)
210
- .flatMap(value => {
211
- if (t.isBlockStatement(value)) {
212
- return value.body.filter(t.isReturnStatement)
213
- }
214
- })
215
- })
216
- .map(value => value.argument)
217
- }
218
-
219
- return []
220
- }
221
-
222
- function addThemeDependencyToMemberExpression(t, path) {
223
- path.value = t.objectExpression([
224
- t.spreadElement(path.value),
225
- t.objectProperty(
226
- t.identifier('uni__dependencies'),
227
- t.arrayExpression([t.numericLiteral(UnistyleDependency.Theme)])
228
- )
229
- ])
230
- }
231
-
232
- module.exports = {
233
- isUnistylesStyleSheet,
234
- analyzeDependencies,
235
- addStyleSheetTag,
236
- getUnistyles,
237
- isKindOfStyleSheet,
238
- addThemeDependencyToMemberExpression
239
- }
@@ -1,66 +0,0 @@
1
- function extractVariants(t, path, state) {
2
- const maybeVariants = path.node.body.filter(node => (
3
- t.isExpressionStatement(node) &&
4
- t.isCallExpression(node.expression) &&
5
- t.isMemberExpression(node.expression.callee)
6
- ))
7
-
8
- if (maybeVariants.length === 0) {
9
- return
10
- }
11
-
12
- const targetVariant = maybeVariants.find(variant => {
13
- const calleeName = variant.expression.callee.object.name
14
-
15
- return (
16
- t.isIdentifier(variant.expression.callee.object, { name: calleeName }) &&
17
- t.isIdentifier(variant.expression.callee.property, { name: 'useVariants' }) &&
18
- variant.expression.arguments.length === 1
19
- )
20
- })
21
-
22
- if (!targetVariant) {
23
- return
24
- }
25
-
26
- const calleeName = targetVariant.expression.callee.object.name
27
- const node = targetVariant.expression
28
- const newUniqueName = path.scope.generateUidIdentifier(calleeName)
29
-
30
- // Create shadow declaration eg. const _styles = styles
31
- const shadowDeclaration = t.variableDeclaration('const', [
32
- t.variableDeclarator(newUniqueName, t.identifier(calleeName))
33
- ])
34
-
35
- // Create the new call expression eg. const styles = _styles.useVariants(...)
36
- const newCallExpression = t.callExpression(
37
- t.memberExpression(t.identifier(newUniqueName.name), t.identifier('useVariants')),
38
- node.arguments
39
- )
40
- const finalDeclaration = t.variableDeclaration('const', [
41
- t.variableDeclarator(t.identifier(calleeName), newCallExpression)
42
- ])
43
-
44
- // Find the current node's index, we will move everything after to new block
45
- const pathIndex = path.node.body
46
- .findIndex(bodyPath => bodyPath === targetVariant)
47
- const rest = path.node.body.slice(pathIndex + 1)
48
-
49
- // move rest to new block (scope)
50
- const blockStatement = t.blockStatement([
51
- finalDeclaration,
52
- ...rest
53
- ])
54
-
55
- path.node.body = [
56
- ...path.node.body.slice(0, pathIndex),
57
- shadowDeclaration,
58
- blockStatement
59
- ]
60
-
61
- state.file.hasVariants = true
62
- }
63
-
64
- module.exports = {
65
- extractVariants
66
- }