react-native-unistyles 3.0.0-alpha.1 → 3.0.0-alpha.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (264) hide show
  1. package/Unistyles.podspec +33 -0
  2. package/cxx/common/Constants.h +1 -0
  3. package/cxx/common/Helpers.h +92 -0
  4. package/cxx/core/HostStyle.cpp +18 -12
  5. package/cxx/core/HostStyle.h +3 -0
  6. package/cxx/core/StyleSheet.h +0 -1
  7. package/cxx/core/StyleSheetRegistry.cpp +10 -13
  8. package/cxx/core/StyleSheetRegistry.h +4 -4
  9. package/cxx/core/Unistyle.h +7 -10
  10. package/cxx/core/UnistyleData.h +23 -0
  11. package/cxx/core/UnistyleWrapper.h +25 -7
  12. package/cxx/core/UnistylesCommitHook.cpp +8 -7
  13. package/cxx/core/UnistylesCommitHook.h +6 -1
  14. package/cxx/core/UnistylesCommitShadowNode.h +13 -0
  15. package/cxx/core/UnistylesMountHook.cpp +40 -0
  16. package/cxx/core/UnistylesMountHook.h +30 -0
  17. package/cxx/core/UnistylesRegistry.cpp +44 -75
  18. package/cxx/core/UnistylesRegistry.h +10 -11
  19. package/cxx/core/UnistylesState.cpp +4 -4
  20. package/cxx/hybridObjects/HybridShadowRegistry.cpp +13 -6
  21. package/cxx/hybridObjects/HybridStyleSheet.cpp +35 -39
  22. package/cxx/hybridObjects/HybridStyleSheet.h +9 -6
  23. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +34 -15
  24. package/cxx/hybridObjects/HybridUnistylesRuntime.h +2 -0
  25. package/cxx/parser/Parser.cpp +87 -165
  26. package/cxx/parser/Parser.h +8 -14
  27. package/cxx/shadowTree/ShadowLeafUpdate.h +1 -1
  28. package/cxx/shadowTree/ShadowTreeManager.cpp +3 -8
  29. package/ios/UnistylesModuleOnLoad.h +2 -0
  30. package/ios/UnistylesModuleOnLoad.mm +8 -1
  31. package/lib/commonjs/specs/NavigtionBar/index.js +1 -1
  32. package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
  33. package/lib/commonjs/specs/ShadowRegistry/index.js +3 -3
  34. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  35. package/lib/commonjs/specs/StatusBar/index.js +1 -1
  36. package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
  37. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  38. package/lib/commonjs/specs/UnistylesRuntime/index.js +1 -1
  39. package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
  40. package/lib/commonjs/specs/index.web.js +1 -1
  41. package/lib/commonjs/web/convert/boxShadow.js +77 -0
  42. package/lib/commonjs/web/convert/boxShadow.js.map +1 -0
  43. package/lib/commonjs/web/convert/breakpoint.js +25 -0
  44. package/lib/commonjs/web/convert/breakpoint.js.map +1 -0
  45. package/lib/commonjs/web/convert/index.js +76 -0
  46. package/lib/commonjs/web/convert/index.js.map +1 -0
  47. package/lib/commonjs/web/convert/module.d.js +2 -0
  48. package/lib/commonjs/web/convert/module.d.js.map +1 -0
  49. package/lib/commonjs/web/convert/shadow.js +68 -0
  50. package/lib/commonjs/web/convert/shadow.js.map +1 -0
  51. package/lib/commonjs/web/convert/style.js +89 -0
  52. package/lib/commonjs/web/convert/style.js.map +1 -0
  53. package/lib/commonjs/web/convert/textShadow.js +73 -0
  54. package/lib/commonjs/web/convert/textShadow.js.map +1 -0
  55. package/lib/commonjs/web/convert/transform.js +72 -0
  56. package/lib/commonjs/web/convert/transform.js.map +1 -0
  57. package/lib/commonjs/web/convert/types.js +9 -0
  58. package/lib/commonjs/web/convert/types.js.map +1 -0
  59. package/lib/commonjs/web/convert/utils.js +55 -0
  60. package/lib/commonjs/web/convert/utils.js.map +1 -0
  61. package/lib/commonjs/web/create.js +89 -0
  62. package/lib/commonjs/web/create.js.map +1 -0
  63. package/lib/commonjs/web/index.js +51 -0
  64. package/lib/commonjs/web/index.js.map +1 -0
  65. package/lib/commonjs/web/listener/index.js +13 -0
  66. package/lib/commonjs/web/listener/index.js.map +1 -0
  67. package/lib/commonjs/web/listener/listener.js +36 -0
  68. package/lib/commonjs/web/listener/listener.js.map +1 -0
  69. package/lib/commonjs/web/mock.js +37 -0
  70. package/lib/commonjs/web/mock.js.map +1 -0
  71. package/lib/commonjs/web/mq.js +23 -0
  72. package/lib/commonjs/web/mq.js.map +1 -0
  73. package/lib/commonjs/web/pseudo.js +11 -0
  74. package/lib/commonjs/web/pseudo.js.map +1 -0
  75. package/lib/commonjs/web/registry.js +37 -0
  76. package/lib/commonjs/web/registry.js.map +1 -0
  77. package/lib/commonjs/web/runtime.js +164 -0
  78. package/lib/commonjs/web/runtime.js.map +1 -0
  79. package/lib/commonjs/web/state.js +121 -0
  80. package/lib/commonjs/web/state.js.map +1 -0
  81. package/lib/commonjs/web/utils.js +78 -0
  82. package/lib/commonjs/web/utils.js.map +1 -0
  83. package/lib/commonjs/web/variants/getVariants.js +39 -0
  84. package/lib/commonjs/web/variants/getVariants.js.map +1 -0
  85. package/lib/commonjs/web/variants/index.js +28 -0
  86. package/lib/commonjs/web/variants/index.js.map +1 -0
  87. package/lib/commonjs/web/variants/useVariants.js +75 -0
  88. package/lib/commonjs/web/variants/useVariants.js.map +1 -0
  89. package/lib/module/specs/NavigtionBar/index.js +1 -1
  90. package/lib/module/specs/NavigtionBar/index.js.map +1 -1
  91. package/lib/module/specs/ShadowRegistry/index.js +3 -3
  92. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  93. package/lib/module/specs/StatusBar/index.js +1 -1
  94. package/lib/module/specs/StatusBar/index.js.map +1 -1
  95. package/lib/module/specs/StyleSheet/index.js.map +1 -1
  96. package/lib/module/specs/UnistylesRuntime/index.js +1 -1
  97. package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
  98. package/lib/module/specs/index.web.js +1 -1
  99. package/lib/module/specs/index.web.js.map +1 -1
  100. package/lib/module/web/convert/boxShadow.js +72 -0
  101. package/lib/module/web/convert/boxShadow.js.map +1 -0
  102. package/lib/module/web/convert/breakpoint.js +20 -0
  103. package/lib/module/web/convert/breakpoint.js.map +1 -0
  104. package/lib/module/web/convert/index.js +71 -0
  105. package/lib/module/web/convert/index.js.map +1 -0
  106. package/lib/module/web/convert/module.d.js +2 -0
  107. package/lib/module/web/convert/module.d.js.map +1 -0
  108. package/lib/module/web/convert/shadow.js +63 -0
  109. package/lib/module/web/convert/shadow.js.map +1 -0
  110. package/lib/module/web/convert/style.js +84 -0
  111. package/lib/module/web/convert/style.js.map +1 -0
  112. package/lib/module/web/convert/textShadow.js +68 -0
  113. package/lib/module/web/convert/textShadow.js.map +1 -0
  114. package/lib/module/web/convert/transform.js +67 -0
  115. package/lib/module/web/convert/transform.js.map +1 -0
  116. package/lib/module/web/convert/types.js +5 -0
  117. package/lib/module/web/convert/types.js.map +1 -0
  118. package/lib/module/web/convert/utils.js +43 -0
  119. package/lib/module/web/convert/utils.js.map +1 -0
  120. package/lib/module/web/create.js +84 -0
  121. package/lib/module/web/create.js.map +1 -0
  122. package/lib/module/web/index.js +24 -0
  123. package/lib/module/web/index.js.map +1 -0
  124. package/lib/module/web/listener/index.js +4 -0
  125. package/lib/module/web/listener/index.js.map +1 -0
  126. package/lib/module/web/listener/listener.js +31 -0
  127. package/lib/module/web/listener/listener.js.map +1 -0
  128. package/lib/module/web/mock.js +33 -0
  129. package/lib/module/web/mock.js.map +1 -0
  130. package/lib/module/web/mq.js +17 -0
  131. package/lib/module/web/mq.js.map +1 -0
  132. package/lib/module/web/pseudo.js +6 -0
  133. package/lib/module/web/pseudo.js.map +1 -0
  134. package/lib/module/web/registry.js +33 -0
  135. package/lib/module/web/registry.js.map +1 -0
  136. package/lib/module/web/runtime.js +160 -0
  137. package/lib/module/web/runtime.js.map +1 -0
  138. package/lib/module/web/state.js +117 -0
  139. package/lib/module/web/state.js.map +1 -0
  140. package/lib/module/web/utils.js +65 -0
  141. package/lib/module/web/utils.js.map +1 -0
  142. package/lib/module/web/variants/getVariants.js +34 -0
  143. package/lib/module/web/variants/getVariants.js.map +1 -0
  144. package/lib/module/web/variants/index.js +5 -0
  145. package/lib/module/web/variants/index.js.map +1 -0
  146. package/lib/module/web/variants/useVariants.js +70 -0
  147. package/lib/module/web/variants/useVariants.js.map +1 -0
  148. package/lib/typescript/example/App.d.ts.map +1 -1
  149. package/lib/typescript/example/Typography.d.ts +12 -0
  150. package/lib/typescript/example/Typography.d.ts.map +1 -0
  151. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +2 -2
  152. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  153. package/lib/typescript/src/specs/StyleSheet/index.d.ts +2 -1
  154. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  155. package/lib/typescript/src/specs/index.web.d.ts +1 -1
  156. package/lib/typescript/src/specs/index.web.d.ts.map +1 -1
  157. package/lib/typescript/src/types/stylesheet.d.ts +1 -1
  158. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
  159. package/lib/typescript/src/web/convert/boxShadow.d.ts.map +1 -0
  160. package/lib/typescript/src/web/convert/breakpoint.d.ts.map +1 -0
  161. package/lib/typescript/{web → src/web}/convert/index.d.ts +1 -1
  162. package/lib/typescript/src/web/convert/index.d.ts.map +1 -0
  163. package/lib/typescript/src/web/convert/shadow.d.ts.map +1 -0
  164. package/lib/typescript/src/web/convert/style.d.ts.map +1 -0
  165. package/lib/typescript/src/web/convert/textShadow.d.ts.map +1 -0
  166. package/lib/typescript/src/web/convert/transform.d.ts.map +1 -0
  167. package/lib/typescript/{web → src/web}/convert/types.d.ts +1 -1
  168. package/lib/typescript/src/web/convert/types.d.ts.map +1 -0
  169. package/lib/typescript/src/web/convert/utils.d.ts.map +1 -0
  170. package/lib/typescript/{web → src/web}/create.d.ts +11 -11
  171. package/lib/typescript/{web → src/web}/create.d.ts.map +1 -1
  172. package/lib/typescript/{web → src/web}/index.d.ts +12 -12
  173. package/lib/typescript/{web → src/web}/index.d.ts.map +1 -1
  174. package/lib/typescript/src/web/listener/index.d.ts.map +1 -0
  175. package/lib/typescript/{web → src/web}/listener/listener.d.ts +1 -1
  176. package/lib/typescript/src/web/listener/listener.d.ts.map +1 -0
  177. package/lib/typescript/{web → src/web}/mock.d.ts +2 -2
  178. package/lib/typescript/src/web/mock.d.ts.map +1 -0
  179. package/lib/typescript/src/web/mq.d.ts.map +1 -0
  180. package/lib/typescript/src/web/pseudo.d.ts.map +1 -0
  181. package/lib/typescript/{web → src/web}/registry.d.ts +1 -1
  182. package/lib/typescript/src/web/registry.d.ts.map +1 -0
  183. package/lib/typescript/{web → src/web}/runtime.d.ts +6 -6
  184. package/lib/typescript/src/web/runtime.d.ts.map +1 -0
  185. package/lib/typescript/{web → src/web}/state.d.ts +4 -4
  186. package/lib/typescript/src/web/state.d.ts.map +1 -0
  187. package/lib/typescript/{web → src/web}/utils.d.ts +5 -3
  188. package/lib/typescript/src/web/utils.d.ts.map +1 -0
  189. package/lib/typescript/src/web/variants/getVariants.d.ts +3 -0
  190. package/lib/typescript/src/web/variants/getVariants.d.ts.map +1 -0
  191. package/lib/typescript/src/web/variants/index.d.ts +3 -0
  192. package/lib/typescript/src/web/variants/index.d.ts.map +1 -0
  193. package/lib/typescript/src/web/variants/useVariants.d.ts +3 -0
  194. package/lib/typescript/src/web/variants/useVariants.d.ts.map +1 -0
  195. package/package.json +2 -2
  196. package/plugin/__tests__/dependencies.spec.js +195 -107
  197. package/plugin/__tests__/ref.spec.js +537 -179
  198. package/plugin/__tests__/stylesheet.spec.js +174 -63
  199. package/plugin/index.js +68 -23
  200. package/plugin/ref.js +74 -12
  201. package/plugin/style.js +57 -24
  202. package/plugin/stylesheet.js +44 -1
  203. package/plugin/variants.js +33 -0
  204. package/src/specs/NavigtionBar/index.ts +1 -1
  205. package/src/specs/ShadowRegistry/index.ts +5 -5
  206. package/src/specs/StatusBar/index.ts +1 -1
  207. package/src/specs/StyleSheet/index.ts +3 -1
  208. package/src/specs/UnistylesRuntime/index.ts +1 -1
  209. package/src/specs/index.web.ts +1 -1
  210. package/src/types/stylesheet.ts +1 -1
  211. package/{web → src/web}/convert/breakpoint.ts +1 -1
  212. package/{web → src/web}/convert/index.ts +1 -1
  213. package/{web → src/web}/convert/types.ts +1 -1
  214. package/{web → src/web}/create.ts +36 -33
  215. package/{web → src/web}/listener/listener.ts +1 -1
  216. package/{web → src/web}/mock.ts +2 -2
  217. package/{web → src/web}/registry.ts +1 -1
  218. package/{web → src/web}/runtime.ts +4 -4
  219. package/{web → src/web}/state.ts +5 -5
  220. package/{web → src/web}/utils.ts +5 -5
  221. package/src/web/variants/getVariants.ts +42 -0
  222. package/src/web/variants/index.ts +2 -0
  223. package/{web → src/web/variants}/useVariants.ts +24 -44
  224. package/lib/typescript/web/convert/boxShadow.d.ts.map +0 -1
  225. package/lib/typescript/web/convert/breakpoint.d.ts.map +0 -1
  226. package/lib/typescript/web/convert/index.d.ts.map +0 -1
  227. package/lib/typescript/web/convert/shadow.d.ts.map +0 -1
  228. package/lib/typescript/web/convert/style.d.ts.map +0 -1
  229. package/lib/typescript/web/convert/textShadow.d.ts.map +0 -1
  230. package/lib/typescript/web/convert/transform.d.ts.map +0 -1
  231. package/lib/typescript/web/convert/types.d.ts.map +0 -1
  232. package/lib/typescript/web/convert/utils.d.ts.map +0 -1
  233. package/lib/typescript/web/listener/index.d.ts.map +0 -1
  234. package/lib/typescript/web/listener/listener.d.ts.map +0 -1
  235. package/lib/typescript/web/mock.d.ts.map +0 -1
  236. package/lib/typescript/web/mq.d.ts.map +0 -1
  237. package/lib/typescript/web/pseudo.d.ts.map +0 -1
  238. package/lib/typescript/web/registry.d.ts.map +0 -1
  239. package/lib/typescript/web/runtime.d.ts.map +0 -1
  240. package/lib/typescript/web/state.d.ts.map +0 -1
  241. package/lib/typescript/web/useVariants.d.ts +0 -3
  242. package/lib/typescript/web/useVariants.d.ts.map +0 -1
  243. package/lib/typescript/web/utils.d.ts.map +0 -1
  244. /package/lib/typescript/{web → src/web}/convert/boxShadow.d.ts +0 -0
  245. /package/lib/typescript/{web → src/web}/convert/breakpoint.d.ts +0 -0
  246. /package/lib/typescript/{web → src/web}/convert/shadow.d.ts +0 -0
  247. /package/lib/typescript/{web → src/web}/convert/style.d.ts +0 -0
  248. /package/lib/typescript/{web → src/web}/convert/textShadow.d.ts +0 -0
  249. /package/lib/typescript/{web → src/web}/convert/transform.d.ts +0 -0
  250. /package/lib/typescript/{web → src/web}/convert/utils.d.ts +0 -0
  251. /package/lib/typescript/{web → src/web}/listener/index.d.ts +0 -0
  252. /package/lib/typescript/{web → src/web}/mq.d.ts +0 -0
  253. /package/lib/typescript/{web → src/web}/pseudo.d.ts +0 -0
  254. /package/{web → src/web}/convert/boxShadow.ts +0 -0
  255. /package/{web → src/web}/convert/module.d.ts +0 -0
  256. /package/{web → src/web}/convert/shadow.ts +0 -0
  257. /package/{web → src/web}/convert/style.ts +0 -0
  258. /package/{web → src/web}/convert/textShadow.ts +0 -0
  259. /package/{web → src/web}/convert/transform.ts +0 -0
  260. /package/{web → src/web}/convert/utils.ts +0 -0
  261. /package/{web → src/web}/index.ts +0 -0
  262. /package/{web → src/web}/listener/index.ts +0 -0
  263. /package/{web → src/web}/mq.ts +0 -0
  264. /package/{web → src/web}/pseudo.ts +0 -0
@@ -16,6 +16,7 @@ pluginTester({
16
16
  {
17
17
  title: 'Should detect dependencies in variants',
18
18
  code: `
19
+ import { View, Text } from 'react-native'
19
20
  import { StyleSheet } from 'react-native-unistyles'
20
21
 
21
22
  export const Example = () => {
@@ -44,14 +45,15 @@ pluginTester({
44
45
  `,
45
46
  output: `
46
47
  import { UnistylesShadowRegistry } from 'react-native-unistyles'
48
+ import { View, Text } from 'react-native'
47
49
  import { StyleSheet } from 'react-native-unistyles'
48
50
 
49
51
  export const Example = () => {
50
52
  return (
51
53
  <View
52
- style={styles.container}
54
+ style={[styles.container]}
53
55
  ref={ref => {
54
- UnistylesShadowRegistry.add(ref, styles.container)
56
+ UnistylesShadowRegistry.add(ref, styles.container, undefined, undefined)
55
57
  return () => UnistylesShadowRegistry.remove(ref, styles.container)
56
58
  }}
57
59
  >
@@ -60,25 +62,29 @@ pluginTester({
60
62
  )
61
63
  }
62
64
 
63
- const styles = StyleSheet.create((theme, rt) => ({
64
- container: {
65
- variants: {
66
- size: {
67
- small: {
68
- backgroundColor: theme.colors.blue,
69
- paddingTop: theme.gap(10),
70
- marginBottom: rt.insets.bottom === 0 ? theme.gap(20) : theme.gap(30)
65
+ const styles = StyleSheet.create(
66
+ (theme, rt) => ({
67
+ container: {
68
+ variants: {
69
+ size: {
70
+ small: {
71
+ backgroundColor: theme.colors.blue,
72
+ paddingTop: theme.gap(10),
73
+ marginBottom: rt.insets.bottom === 0 ? theme.gap(20) : theme.gap(30)
74
+ }
71
75
  }
72
- }
73
- },
74
- uni__dependencies: [0, 9, 4]
75
- }
76
- }))
76
+ },
77
+ uni__dependencies: [0, 9, 4]
78
+ }
79
+ }),
80
+ 276736056
81
+ )
77
82
  `
78
83
  },
79
84
  {
80
85
  title: 'Should detect dependencies in breakpoints',
81
86
  code: `
87
+ import { View, Text } from 'react-native'
82
88
  import { StyleSheet } from 'react-native-unistyles'
83
89
 
84
90
  export const Example = () => {
@@ -102,14 +108,15 @@ pluginTester({
102
108
  `,
103
109
  output: `
104
110
  import { UnistylesShadowRegistry } from 'react-native-unistyles'
111
+ import { View, Text } from 'react-native'
105
112
  import { StyleSheet } from 'react-native-unistyles'
106
113
 
107
114
  export const Example = () => {
108
115
  return (
109
116
  <View
110
- style={styles.container}
117
+ style={[styles.container]}
111
118
  ref={ref => {
112
- UnistylesShadowRegistry.add(ref, styles.container)
119
+ UnistylesShadowRegistry.add(ref, styles.container, undefined, undefined)
113
120
  return () => UnistylesShadowRegistry.remove(ref, styles.container)
114
121
  }}
115
122
  >
@@ -118,22 +125,26 @@ pluginTester({
118
125
  )
119
126
  }
120
127
 
121
- const styles = StyleSheet.create((theme, rt) => ({
122
- container: {
123
- backgroundColor: {
124
- sm: theme.colors.blue
125
- },
126
- padding: {
127
- xs: rt.insets.top
128
- },
129
- uni__dependencies: [0, 9]
130
- }
131
- }))
128
+ const styles = StyleSheet.create(
129
+ (theme, rt) => ({
130
+ container: {
131
+ backgroundColor: {
132
+ sm: theme.colors.blue
133
+ },
134
+ padding: {
135
+ xs: rt.insets.top
136
+ },
137
+ uni__dependencies: [0, 9]
138
+ }
139
+ }),
140
+ 276736056
141
+ )
132
142
  `
133
143
  },
134
144
  {
135
145
  title: 'Should detect dependencies in calculations',
136
146
  code: `
147
+ import { View, Text } from 'react-native'
137
148
  import { StyleSheet } from 'react-native-unistyles'
138
149
 
139
150
  export const Example = () => {
@@ -154,14 +165,15 @@ pluginTester({
154
165
  `,
155
166
  output: `
156
167
  import { UnistylesShadowRegistry } from 'react-native-unistyles'
168
+ import { View, Text } from 'react-native'
157
169
  import { StyleSheet } from 'react-native-unistyles'
158
170
 
159
171
  export const Example = () => {
160
172
  return (
161
173
  <View
162
- style={styles.container}
174
+ style={[styles.container]}
163
175
  ref={ref => {
164
- UnistylesShadowRegistry.add(ref, styles.container)
176
+ UnistylesShadowRegistry.add(ref, styles.container, undefined, undefined)
165
177
  return () => UnistylesShadowRegistry.remove(ref, styles.container)
166
178
  }}
167
179
  >
@@ -170,19 +182,23 @@ pluginTester({
170
182
  )
171
183
  }
172
184
 
173
- const styles = StyleSheet.create((theme, rt) => ({
174
- container: {
175
- marginTop: theme.gap(2) + rt.insets.bottom,
176
- marginBottom: theme.gap(2) * rt.statusBar.height,
177
- paddingTop: theme.gap(2) - rt.navigationBar.height,
178
- uni__dependencies: [0, 9, 12, 13]
179
- }
180
- }))
185
+ const styles = StyleSheet.create(
186
+ (theme, rt) => ({
187
+ container: {
188
+ marginTop: theme.gap(2) + rt.insets.bottom,
189
+ marginBottom: theme.gap(2) * rt.statusBar.height,
190
+ paddingTop: theme.gap(2) - rt.navigationBar.height,
191
+ uni__dependencies: [0, 9, 12, 13]
192
+ }
193
+ }),
194
+ 276736056
195
+ )
181
196
  `
182
197
  },
183
198
  {
184
199
  title: 'Should detect dependencies in _web',
185
200
  code: `
201
+ import { View, Text } from 'react-native'
186
202
  import { StyleSheet } from 'react-native-unistyles'
187
203
 
188
204
  export const Example = () => {
@@ -264,14 +280,15 @@ pluginTester({
264
280
  `,
265
281
  output: `
266
282
  import { UnistylesShadowRegistry } from 'react-native-unistyles'
283
+ import { View, Text } from 'react-native'
267
284
  import { StyleSheet } from 'react-native-unistyles'
268
285
 
269
286
  export const Example = () => {
270
287
  return (
271
288
  <View
272
- style={styles.container}
289
+ style={[styles.container]}
273
290
  ref={ref => {
274
- UnistylesShadowRegistry.add(ref, styles.container)
291
+ UnistylesShadowRegistry.add(ref, styles.container, undefined, undefined)
275
292
  return () => UnistylesShadowRegistry.remove(ref, styles.container)
276
293
  }}
277
294
  >
@@ -280,80 +297,151 @@ pluginTester({
280
297
  )
281
298
  }
282
299
 
283
- const styles = StyleSheet.create((theme, rt) => ({
284
- container: {
285
- flex: 1,
286
- display: 'flex'
287
- },
288
- static: {
289
- backgroundColor: 'pink'
290
- },
291
- staticText: {
292
- color: 'red'
293
- },
294
- theme: {
295
- backgroundColor: theme.colors.backgroundColor,
296
- uni__dependencies: [0]
297
- },
298
- themeText: {
299
- color: theme.colors.typography,
300
- uni__dependencies: [0]
301
- },
302
- themeButtonsContainer: {
303
- marginTop: 20,
304
- flexDirection: 'row',
305
- gap: 10
306
- },
307
- dynamic: state => ({
308
- backgroundColor: state % 2 === 0 ? theme.colors.fog : theme.colors.oak,
309
- uni__dependencies: [0]
310
- }),
311
- whiteText: {
312
- color: 'white',
313
- textAlign: 'center'
314
- },
315
- hover: {
316
- backgroundColor: theme.colors.blood,
317
- cursor: 'pointer',
318
- _web: {
319
- _hover: {
320
- backgroundColor: theme.colors.sky,
321
- paddingTop: rt.insets.top
322
- }
300
+ const styles = StyleSheet.create(
301
+ (theme, rt) => ({
302
+ container: {
303
+ flex: 1,
304
+ display: 'flex'
323
305
  },
324
- uni__dependencies: [0, 9]
325
- },
326
- breakpoint: {
327
- backgroundColor: {
328
- xs: theme.colors.blood,
329
- md: theme.colors.sky,
330
- xl: theme.colors.aloes
306
+ static: {
307
+ backgroundColor: 'pink'
331
308
  },
332
- transform: [
333
- {
334
- translateX: {
335
- xs: rt.fontScale * 10,
336
- md: rt.pixelRatio * 10
309
+ staticText: {
310
+ color: 'red'
311
+ },
312
+ theme: {
313
+ backgroundColor: theme.colors.backgroundColor,
314
+ uni__dependencies: [0]
315
+ },
316
+ themeText: {
317
+ color: theme.colors.typography,
318
+ uni__dependencies: [0]
319
+ },
320
+ themeButtonsContainer: {
321
+ marginTop: 20,
322
+ flexDirection: 'row',
323
+ gap: 10
324
+ },
325
+ dynamic: state => ({
326
+ backgroundColor: state % 2 === 0 ? theme.colors.fog : theme.colors.oak,
327
+ uni__dependencies: [0]
328
+ }),
329
+ whiteText: {
330
+ color: 'white',
331
+ textAlign: 'center'
332
+ },
333
+ hover: {
334
+ backgroundColor: theme.colors.blood,
335
+ cursor: 'pointer',
336
+ _web: {
337
+ _hover: {
338
+ backgroundColor: theme.colors.sky,
339
+ paddingTop: rt.insets.top
337
340
  }
338
- }
339
- ],
341
+ },
342
+ uni__dependencies: [0, 9]
343
+ },
344
+ breakpoint: {
345
+ backgroundColor: {
346
+ xs: theme.colors.blood,
347
+ md: theme.colors.sky,
348
+ xl: theme.colors.aloes
349
+ },
350
+ transform: [
351
+ {
352
+ translateX: {
353
+ xs: rt.fontScale * 10,
354
+ md: rt.pixelRatio * 10
355
+ }
356
+ }
357
+ ],
340
358
 
341
- position: 'relative',
342
- _web: {
343
- _after: {
344
- fontWeight: 'bold',
345
- content: rt.breakpoint,
346
- color: 'white',
347
- position: 'absolute',
348
- top: '60%',
349
- left: '50%',
350
- transform: 'translate(-50%, -50%)',
351
- backgroundColor: rt.colorScheme === 'dark' ? 'black' : 'white'
359
+ position: 'relative',
360
+ _web: {
361
+ _after: {
362
+ fontWeight: 'bold',
363
+ content: rt.breakpoint,
364
+ color: 'white',
365
+ position: 'absolute',
366
+ top: '60%',
367
+ left: '50%',
368
+ transform: 'translate(-50%, -50%)',
369
+ backgroundColor: rt.colorScheme === 'dark' ? 'black' : 'white'
370
+ }
371
+ },
372
+ uni__dependencies: [0, 11, 10, 3, 5]
373
+ }
374
+ }),
375
+ 276736056
376
+ )
377
+ `
378
+ },
379
+ {
380
+ title: 'Should allow user to use arrow functions with body for dynamic functions',
381
+ code: `
382
+ import { View, Text } from 'react-native'
383
+ import { StyleSheet } from 'react-native-unistyles'
384
+
385
+ export const Example = () => {
386
+ return (
387
+ <View style={styles.container}>
388
+ <Text>Hello world</Text>
389
+ </View>
390
+ )
391
+ }
392
+
393
+ const styles = StyleSheet.create((theme, rt) => ({
394
+ container: () => {
395
+ const b = 2 + 2
396
+
397
+ return {
398
+ backgroundColor: {
399
+ sm: theme.colors.blue
400
+ },
401
+ padding: {
402
+ xs: rt.insets.top + b
352
403
  }
353
- },
354
- uni__dependencies: [0, 11, 10, 3, 5]
404
+ }
355
405
  }
356
406
  }))
407
+ `,
408
+ output: `
409
+ import { UnistylesShadowRegistry } from 'react-native-unistyles'
410
+ import { View, Text } from 'react-native'
411
+ import { StyleSheet } from 'react-native-unistyles'
412
+
413
+ export const Example = () => {
414
+ return (
415
+ <View
416
+ style={[styles.container]}
417
+ ref={ref => {
418
+ UnistylesShadowRegistry.add(ref, styles.container, undefined, undefined)
419
+ return () => UnistylesShadowRegistry.remove(ref, styles.container)
420
+ }}
421
+ >
422
+ <Text>Hello world</Text>
423
+ </View>
424
+ )
425
+ }
426
+
427
+ const styles = StyleSheet.create(
428
+ (theme, rt) => ({
429
+ container: () => {
430
+ const b = 2 + 2
431
+
432
+ return {
433
+ backgroundColor: {
434
+ sm: theme.colors.blue
435
+ },
436
+ padding: {
437
+ xs: rt.insets.top + b
438
+ },
439
+ uni__dependencies: [0, 9]
440
+ }
441
+ }
442
+ }),
443
+ 276736056
444
+ )
357
445
  `
358
446
  },
359
447
  ]