react-native-unistyles 3.3.0 → 3.5.0

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 (216) hide show
  1. package/README.md +26 -10
  2. package/android/build.gradle +12 -1
  3. package/android/src/main/cxx/NativeUnistylesModule.cpp +8 -4
  4. package/android/src/main/cxx/NativeUnistylesModule.h +5 -1
  5. package/components/native/ActivityIndicator/package.json +1 -1
  6. package/cxx/common/UnistylesConstants.h +1 -0
  7. package/cxx/converters/TransformOriginConverter.cpp +106 -0
  8. package/cxx/core/StyleSheetRegistry.cpp +9 -9
  9. package/cxx/core/StyleSheetRegistry.h +3 -3
  10. package/cxx/core/UnistyleWrapper.h +13 -1
  11. package/cxx/core/UnistylesRegistry.cpp +226 -54
  12. package/cxx/core/UnistylesRegistry.h +64 -7
  13. package/cxx/hybridObjects/HybridShadowRegistry.cpp +128 -11
  14. package/cxx/hybridObjects/HybridShadowRegistry.h +20 -0
  15. package/cxx/hybridObjects/HybridStyleSheet.cpp +20 -12
  16. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +11 -1
  17. package/cxx/hybridObjects/HybridUnistylesRuntime.h +4 -2
  18. package/cxx/parser/Parser.cpp +30 -3
  19. package/cxx/parser/Parser.h +1 -0
  20. package/cxx/shadowTree/NativeProps.h +88 -0
  21. package/cxx/shadowTree/ShadowLeafUpdate.h +8 -0
  22. package/cxx/shadowTree/ShadowTrafficController.h +18 -35
  23. package/cxx/shadowTree/ShadowTreeDiagnostics.cpp +339 -0
  24. package/cxx/shadowTree/ShadowTreeDiagnostics.h +18 -0
  25. package/cxx/shadowTree/ShadowTreeManager.cpp +14 -148
  26. package/cxx/shadowTree/ShadowTreeManager.h +2 -6
  27. package/diagnostics/package.json +6 -0
  28. package/ios/UnistylesModuleOnLoad.mm +9 -3
  29. package/lib/commonjs/components/native/ActivityIndicator.native.js +10 -0
  30. package/lib/commonjs/components/native/ActivityIndicator.native.js.map +1 -0
  31. package/lib/commonjs/components/native/Animated.js +2 -0
  32. package/lib/commonjs/components/native/Animated.js.map +1 -1
  33. package/lib/commonjs/components/native/NativeText.js +6 -0
  34. package/lib/commonjs/components/native/NativeText.js.map +1 -1
  35. package/lib/commonjs/components/native/NativeText.native.js +17 -1
  36. package/lib/commonjs/components/native/NativeText.native.js.map +1 -1
  37. package/lib/commonjs/components/native/NativeView.js +6 -0
  38. package/lib/commonjs/components/native/NativeView.js.map +1 -1
  39. package/lib/commonjs/components/native/NativeView.native.js +22 -3
  40. package/lib/commonjs/components/native/NativeView.native.js.map +1 -1
  41. package/lib/commonjs/components/native/Pressable.js +9 -3
  42. package/lib/commonjs/components/native/Pressable.js.map +1 -1
  43. package/lib/commonjs/components/native/Pressable.native.js +2 -0
  44. package/lib/commonjs/components/native/Pressable.native.js.map +1 -1
  45. package/lib/commonjs/components/native/TouchableHighlight.native.js +10 -0
  46. package/lib/commonjs/components/native/TouchableHighlight.native.js.map +1 -0
  47. package/lib/commonjs/core/createUnistylesActivityIndicator.js +41 -0
  48. package/lib/commonjs/core/createUnistylesActivityIndicator.js.map +1 -0
  49. package/lib/commonjs/core/createUnistylesElement.js +59 -14
  50. package/lib/commonjs/core/createUnistylesElement.js.map +1 -1
  51. package/lib/commonjs/core/createUnistylesTouchableHighlight.js +58 -0
  52. package/lib/commonjs/core/createUnistylesTouchableHighlight.js.map +1 -0
  53. package/lib/commonjs/core/index.js +14 -0
  54. package/lib/commonjs/core/index.js.map +1 -1
  55. package/lib/commonjs/diagnostics/index.js +13 -0
  56. package/lib/commonjs/diagnostics/index.js.map +1 -0
  57. package/lib/commonjs/diagnostics/types.js +2 -0
  58. package/lib/commonjs/diagnostics/types.js.map +1 -0
  59. package/lib/commonjs/diagnostics/verify.js +19 -0
  60. package/lib/commonjs/diagnostics/verify.js.map +1 -0
  61. package/lib/commonjs/diagnostics/verify.native.js +12 -0
  62. package/lib/commonjs/diagnostics/verify.native.js.map +1 -0
  63. package/lib/commonjs/index.js +38 -0
  64. package/lib/commonjs/index.js.map +1 -1
  65. package/lib/commonjs/mocks.js +41 -0
  66. package/lib/commonjs/mocks.js.map +1 -1
  67. package/lib/commonjs/reanimated/variant/useUpdateVariantColor.native.js +8 -0
  68. package/lib/commonjs/reanimated/variant/useUpdateVariantColor.native.js.map +1 -1
  69. package/lib/commonjs/specs/ShadowRegistry/index.js +97 -1
  70. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  71. package/lib/commonjs/specs/StyleSheet/index.js +5 -1
  72. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  73. package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
  74. package/lib/commonjs/web/convert/object/boxShadow.js +2 -2
  75. package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -1
  76. package/lib/commonjs/web/index.js.map +1 -1
  77. package/lib/commonjs/web/registry.js +3 -0
  78. package/lib/commonjs/web/registry.js.map +1 -1
  79. package/lib/module/components/native/ActivityIndicator.native.js +6 -0
  80. package/lib/module/components/native/ActivityIndicator.native.js.map +1 -0
  81. package/lib/module/components/native/Animated.js +3 -0
  82. package/lib/module/components/native/Animated.js.map +1 -1
  83. package/lib/module/components/native/NativeText.js +1 -1
  84. package/lib/module/components/native/NativeText.js.map +1 -1
  85. package/lib/module/components/native/NativeText.native.js +15 -1
  86. package/lib/module/components/native/NativeText.native.js.map +1 -1
  87. package/lib/module/components/native/NativeView.js +1 -0
  88. package/lib/module/components/native/NativeView.js.map +1 -1
  89. package/lib/module/components/native/NativeView.native.js +19 -2
  90. package/lib/module/components/native/NativeView.native.js.map +1 -1
  91. package/lib/module/components/native/Pressable.js +9 -3
  92. package/lib/module/components/native/Pressable.js.map +1 -1
  93. package/lib/module/components/native/Pressable.native.js +2 -0
  94. package/lib/module/components/native/Pressable.native.js.map +1 -1
  95. package/lib/module/components/native/TouchableHighlight.native.js +6 -0
  96. package/lib/module/components/native/TouchableHighlight.native.js.map +1 -0
  97. package/lib/module/core/createUnistylesActivityIndicator.js +35 -0
  98. package/lib/module/core/createUnistylesActivityIndicator.js.map +1 -0
  99. package/lib/module/core/createUnistylesElement.js +58 -13
  100. package/lib/module/core/createUnistylesElement.js.map +1 -1
  101. package/lib/module/core/createUnistylesTouchableHighlight.js +52 -0
  102. package/lib/module/core/createUnistylesTouchableHighlight.js.map +1 -0
  103. package/lib/module/core/index.js +2 -0
  104. package/lib/module/core/index.js.map +1 -1
  105. package/lib/module/diagnostics/index.js +5 -0
  106. package/lib/module/diagnostics/index.js.map +1 -0
  107. package/lib/module/diagnostics/types.js +2 -0
  108. package/lib/module/diagnostics/types.js.map +1 -0
  109. package/lib/module/diagnostics/verify.js +14 -0
  110. package/lib/module/diagnostics/verify.js.map +1 -0
  111. package/lib/module/diagnostics/verify.native.js +8 -0
  112. package/lib/module/diagnostics/verify.native.js.map +1 -0
  113. package/lib/module/index.js +2 -0
  114. package/lib/module/index.js.map +1 -1
  115. package/lib/module/mocks.js +41 -0
  116. package/lib/module/mocks.js.map +1 -1
  117. package/lib/module/reanimated/variant/useUpdateVariantColor.native.js +9 -1
  118. package/lib/module/reanimated/variant/useUpdateVariantColor.native.js.map +1 -1
  119. package/lib/module/specs/ShadowRegistry/index.js +97 -1
  120. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  121. package/lib/module/specs/StyleSheet/index.js +6 -1
  122. package/lib/module/specs/StyleSheet/index.js.map +1 -1
  123. package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
  124. package/lib/module/web/convert/object/boxShadow.js +2 -2
  125. package/lib/module/web/convert/object/boxShadow.js.map +1 -1
  126. package/lib/module/web/index.js.map +1 -1
  127. package/lib/module/web/registry.js +3 -0
  128. package/lib/module/web/registry.js.map +1 -1
  129. package/lib/typescript/src/components/native/ActivityIndicator.native.d.ts +2 -0
  130. package/lib/typescript/src/components/native/ActivityIndicator.native.d.ts.map +1 -0
  131. package/lib/typescript/src/components/native/Animated.d.ts +16 -36
  132. package/lib/typescript/src/components/native/Animated.d.ts.map +1 -1
  133. package/lib/typescript/src/components/native/NativeText.d.ts +1 -1
  134. package/lib/typescript/src/components/native/NativeText.d.ts.map +1 -1
  135. package/lib/typescript/src/components/native/NativeText.native.d.ts.map +1 -1
  136. package/lib/typescript/src/components/native/NativeView.d.ts +1 -0
  137. package/lib/typescript/src/components/native/NativeView.d.ts.map +1 -1
  138. package/lib/typescript/src/components/native/NativeView.native.d.ts +2 -2
  139. package/lib/typescript/src/components/native/NativeView.native.d.ts.map +1 -1
  140. package/lib/typescript/src/components/native/Pressable.d.ts +4 -2
  141. package/lib/typescript/src/components/native/Pressable.d.ts.map +1 -1
  142. package/lib/typescript/src/components/native/Pressable.native.d.ts +5 -2
  143. package/lib/typescript/src/components/native/Pressable.native.d.ts.map +1 -1
  144. package/lib/typescript/src/components/native/TouchableHighlight.native.d.ts +2 -0
  145. package/lib/typescript/src/components/native/TouchableHighlight.native.d.ts.map +1 -0
  146. package/lib/typescript/src/core/createUnistylesActivityIndicator.d.ts +3 -0
  147. package/lib/typescript/src/core/createUnistylesActivityIndicator.d.ts.map +1 -0
  148. package/lib/typescript/src/core/createUnistylesElement.d.ts.map +1 -1
  149. package/lib/typescript/src/core/createUnistylesTouchableHighlight.d.ts +3 -0
  150. package/lib/typescript/src/core/createUnistylesTouchableHighlight.d.ts.map +1 -0
  151. package/lib/typescript/src/core/index.d.ts +2 -0
  152. package/lib/typescript/src/core/index.d.ts.map +1 -1
  153. package/lib/typescript/src/core/useUnistyles.d.ts +1 -1
  154. package/lib/typescript/src/diagnostics/index.d.ts +3 -0
  155. package/lib/typescript/src/diagnostics/index.d.ts.map +1 -0
  156. package/lib/typescript/src/diagnostics/types.d.ts +19 -0
  157. package/lib/typescript/src/diagnostics/types.d.ts.map +1 -0
  158. package/lib/typescript/src/diagnostics/verify.d.ts +3 -0
  159. package/lib/typescript/src/diagnostics/verify.d.ts.map +1 -0
  160. package/lib/typescript/src/diagnostics/verify.native.d.ts +3 -0
  161. package/lib/typescript/src/diagnostics/verify.native.d.ts.map +1 -0
  162. package/lib/typescript/src/index.d.ts +4 -1
  163. package/lib/typescript/src/index.d.ts.map +1 -1
  164. package/lib/typescript/src/reanimated/variant/useUpdateVariantColor.native.d.ts.map +1 -1
  165. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +5 -1
  166. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  167. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +3 -0
  168. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
  169. package/lib/typescript/src/specs/StyleSheet/index.d.ts +4 -1
  170. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  171. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +2 -2
  172. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
  173. package/lib/typescript/src/types/breakpoints.d.ts +1 -1
  174. package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
  175. package/lib/typescript/src/types/core.d.ts +7 -2
  176. package/lib/typescript/src/types/core.d.ts.map +1 -1
  177. package/lib/typescript/src/types/stylesheet.d.ts +3 -3
  178. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
  179. package/lib/typescript/src/web/index.d.ts.map +1 -1
  180. package/lib/typescript/src/web/registry.d.ts.map +1 -1
  181. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_UnistylesNativeMiniRuntime.kt +0 -2
  182. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.kt +0 -2
  183. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +2 -0
  184. package/package.json +35 -26
  185. package/plugin/index.d.ts +4 -4
  186. package/plugin/index.js +21 -5
  187. package/src/components/native/ActivityIndicator.native.tsx +5 -0
  188. package/src/components/native/Animated.tsx +18 -1
  189. package/src/components/native/NativeText.native.tsx +18 -1
  190. package/src/components/native/NativeText.tsx +1 -1
  191. package/src/components/native/NativeView.native.tsx +22 -2
  192. package/src/components/native/NativeView.tsx +2 -0
  193. package/src/components/native/Pressable.native.tsx +10 -2
  194. package/src/components/native/Pressable.tsx +15 -4
  195. package/src/components/native/TouchableHighlight.native.tsx +5 -0
  196. package/src/core/createUnistylesActivityIndicator.tsx +47 -0
  197. package/src/core/createUnistylesElement.tsx +45 -14
  198. package/src/core/createUnistylesTouchableHighlight.tsx +69 -0
  199. package/src/core/index.ts +2 -0
  200. package/src/diagnostics/index.ts +3 -0
  201. package/src/diagnostics/types.ts +25 -0
  202. package/src/diagnostics/verify.native.ts +7 -0
  203. package/src/diagnostics/verify.ts +13 -0
  204. package/src/index.ts +4 -1
  205. package/src/mocks.ts +41 -0
  206. package/src/reanimated/variant/useUpdateVariantColor.native.ts +7 -1
  207. package/src/specs/ShadowRegistry/index.ts +128 -1
  208. package/src/specs/ShadowRegistry/types.ts +3 -0
  209. package/src/specs/StyleSheet/index.ts +10 -2
  210. package/src/specs/UnistylesRuntime/index.ts +7 -2
  211. package/src/types/breakpoints.ts +5 -3
  212. package/src/types/core.ts +7 -28
  213. package/src/types/stylesheet.ts +3 -3
  214. package/src/web/convert/object/boxShadow.ts +2 -2
  215. package/src/web/index.ts +2 -1
  216. package/src/web/registry.ts +3 -0
@@ -18,9 +18,9 @@ export type UnistyleImage = Omit<ImageStyle, NestedKeys>
18
18
  type UnistyleNestedStyles = {
19
19
  shadowOffset?: ToDeepUnistyles<ShadowOffset>
20
20
  textShadowOffset?: ToDeepUnistyles<ShadowOffset>
21
- transform?: Array<ToDeepUnistyles<TransformStyles>>
22
- boxShadow?: Array<ToDeepUnistyles<BoxShadowValue>> | string
23
- filter?: Array<ToDeepUnistyles<FilterFunction>> | string
21
+ transform?: ReadonlyArray<ToDeepUnistyles<TransformStyles>>
22
+ boxShadow?: ReadonlyArray<ToDeepUnistyles<BoxShadowValue>> | string
23
+ filter?: ReadonlyArray<ToDeepUnistyles<FilterFunction>> | string
24
24
  }
25
25
 
26
26
  type VariantsObject = {
@@ -17,7 +17,7 @@ export const getBoxShadow = (boxShadow: Array<BoxShadowValue>) => {
17
17
  const value = shadow[key as keyof BoxShadowValue]
18
18
 
19
19
  // Breakpoints
20
- if (typeof value === 'object') {
20
+ if (value !== null && typeof value === 'object') {
21
21
  Object.keys(value).forEach((breakpoint) => breakpoints.add(breakpoint))
22
22
  }
23
23
  })
@@ -41,7 +41,7 @@ export const getBoxShadow = (boxShadow: Array<BoxShadowValue>) => {
41
41
  const [key] = Object.keys(shadow)
42
42
  const value = shadow[key as keyof BoxShadowValue]
43
43
 
44
- if (typeof value === 'object' && keyInObject(value, breakpoint)) {
44
+ if (value !== null && typeof value === 'object' && keyInObject(value, breakpoint)) {
45
45
  return [key, value[breakpoint]]
46
46
  }
47
47
 
package/src/web/index.ts CHANGED
@@ -26,7 +26,8 @@ export const StyleSheet = {
26
26
  bottom: 0,
27
27
  },
28
28
  compose: (a: object, b: object) => RNStyleSheet.compose(a, b),
29
- flatten: (...styles: Array<object>) => RNStyleSheet.flatten(...styles),
29
+ flatten: (...styles: Array<object>) =>
30
+ (RNStyleSheet.flatten as unknown as (...styles: Array<object>) => object)(...styles),
30
31
  hairlineWidth: 1,
31
32
  } as unknown as typeof NativeStyleSheet
32
33
 
@@ -90,6 +90,9 @@ export class UnistylesRegistry {
90
90
  stylesCounter.delete(ref)
91
91
 
92
92
  if (stylesCounter.size === 0) {
93
+ // Safe to drop now: connect creates a new Set and the cleanup below only checks the DOM
94
+ this.stylesCounter.delete(hash)
95
+
93
96
  // Move this to the end of the event loop so the element is removed from the DOM
94
97
  return Promise.resolve().then(() => {
95
98
  // Check if element is still in the DOM