react-native-unistyles 3.0.24 → 3.1.1

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 (491) hide show
  1. package/README.md +7 -6
  2. package/android/src/main/cxx/NativeUnistylesModule.cpp +7 -4
  3. package/android/src/main/cxx/NativeUnistylesModule.h +9 -3
  4. package/android/src/main/cxx/cpp-adapter.cpp +1 -1
  5. package/android/src/main/java/com/unistyles/NativePlatform+android.kt +22 -4
  6. package/android/src/main/java/com/unistyles/UnistylesModule.kt +1 -0
  7. package/cxx/core/StyleSheetRegistry.cpp +11 -11
  8. package/cxx/core/StyleSheetRegistry.h +4 -4
  9. package/cxx/core/UnistylesRegistry.cpp +27 -14
  10. package/cxx/core/UnistylesRegistry.h +4 -1
  11. package/cxx/hybridObjects/HybridShadowRegistry.cpp +5 -0
  12. package/cxx/hybridObjects/HybridStyleSheet.cpp +2 -14
  13. package/cxx/hybridObjects/HybridStyleSheet.h +0 -2
  14. package/ios/UnistylesModuleOnLoad.mm +10 -2
  15. package/lib/commonjs/components/AdaptiveTheme.js +1 -1
  16. package/lib/commonjs/components/AdaptiveTheme.js.map +1 -1
  17. package/lib/commonjs/components/ApplyScopedTheme.js.map +1 -1
  18. package/lib/commonjs/components/Display.js.map +1 -1
  19. package/lib/commonjs/components/Hide.js.map +1 -1
  20. package/lib/commonjs/components/NamedTheme.js +2 -2
  21. package/lib/commonjs/components/NamedTheme.js.map +1 -1
  22. package/lib/commonjs/components/ScopedTheme.js.map +1 -1
  23. package/lib/commonjs/components/native/ActivityIndicator.js.map +1 -1
  24. package/lib/commonjs/components/native/Animated.js.map +1 -1
  25. package/lib/commonjs/components/native/FlatList.js.map +1 -1
  26. package/lib/commonjs/components/native/Image.js.map +1 -1
  27. package/lib/commonjs/components/native/Image.native.js.map +1 -1
  28. package/lib/commonjs/components/native/ImageBackground.js.map +1 -1
  29. package/lib/commonjs/components/native/ImageBackground.native.js.map +1 -1
  30. package/lib/commonjs/components/native/KeyboardAvoidingView.js.map +1 -1
  31. package/lib/commonjs/components/native/NativeText.native.js.map +1 -1
  32. package/lib/commonjs/components/native/NativeView.native.js.map +1 -1
  33. package/lib/commonjs/components/native/Pressable.js.map +1 -1
  34. package/lib/commonjs/components/native/Pressable.native.js.map +1 -1
  35. package/lib/commonjs/components/native/RefreshControl.js.map +1 -1
  36. package/lib/commonjs/components/native/SafeAreaView.js.map +1 -1
  37. package/lib/commonjs/components/native/ScrollView.js.map +1 -1
  38. package/lib/commonjs/components/native/SectionList.js.map +1 -1
  39. package/lib/commonjs/components/native/Switch.js.map +1 -1
  40. package/lib/commonjs/components/native/Text.js.map +1 -1
  41. package/lib/commonjs/components/native/TextInput.js.map +1 -1
  42. package/lib/commonjs/components/native/TouchableHighlight.js.map +1 -1
  43. package/lib/commonjs/components/native/TouchableOpacity.js.map +1 -1
  44. package/lib/commonjs/components/native/View.js.map +1 -1
  45. package/lib/commonjs/components/native/VirtualizedList.js.map +1 -1
  46. package/lib/commonjs/core/createUnistylesElement.js.map +1 -1
  47. package/lib/commonjs/core/createUnistylesElement.native.js.map +1 -1
  48. package/lib/commonjs/core/createUnistylesImageBackground.js.map +1 -1
  49. package/lib/commonjs/core/getClassname.js.map +1 -1
  50. package/lib/commonjs/core/parseBoxShadow.js.map +1 -1
  51. package/lib/commonjs/core/useProxifiedUnistyles/listener.js.map +1 -1
  52. package/lib/commonjs/core/useProxifiedUnistyles/listener.native.js +0 -1
  53. package/lib/commonjs/core/useProxifiedUnistyles/listener.native.js.map +1 -1
  54. package/lib/commonjs/core/useProxifiedUnistyles/useProxifiedUnistyles.js.map +1 -1
  55. package/lib/commonjs/core/useUnistyles.js.map +1 -1
  56. package/lib/commonjs/core/warn.js.map +1 -1
  57. package/lib/commonjs/core/withUnistyles/withUnistyles.js +3 -1
  58. package/lib/commonjs/core/withUnistyles/withUnistyles.js.map +1 -1
  59. package/lib/commonjs/core/withUnistyles/withUnistyles.native.js +6 -0
  60. package/lib/commonjs/core/withUnistyles/withUnistyles.native.js.map +1 -1
  61. package/lib/commonjs/hooks/useMedia.js.map +1 -1
  62. package/lib/commonjs/hooks/useMedia.native.js +0 -1
  63. package/lib/commonjs/hooks/useMedia.native.js.map +1 -1
  64. package/lib/commonjs/index.js +6 -0
  65. package/lib/commonjs/index.js.map +1 -1
  66. package/lib/commonjs/mocks.js +28 -8
  67. package/lib/commonjs/mocks.js.map +1 -1
  68. package/lib/commonjs/mq.js.map +1 -1
  69. package/lib/commonjs/reanimated/useAnimatedTheme.js.map +1 -1
  70. package/lib/commonjs/reanimated/useAnimatedTheme.native.js +0 -1
  71. package/lib/commonjs/reanimated/useAnimatedTheme.native.js.map +1 -1
  72. package/lib/commonjs/reanimated/variant/useAnimatedVariantColor.js.map +1 -1
  73. package/lib/commonjs/reanimated/variant/useUpdateVariantColor.js.map +1 -1
  74. package/lib/commonjs/reanimated/variant/useUpdateVariantColor.native.js +0 -1
  75. package/lib/commonjs/reanimated/variant/useUpdateVariantColor.native.js.map +1 -1
  76. package/lib/commonjs/server/getServerUnistyles.js.map +1 -1
  77. package/lib/commonjs/server/useServerUnistyles.js.map +1 -1
  78. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
  79. package/lib/commonjs/specs/ShadowRegistry/index.js +9 -5
  80. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  81. package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
  82. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  83. package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js.map +1 -1
  84. package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
  85. package/lib/commonjs/specs/index.native.js +1 -1
  86. package/lib/commonjs/specs/index.native.js.map +1 -1
  87. package/lib/commonjs/specs/types.js.map +1 -1
  88. package/lib/commonjs/types/index.js.map +1 -1
  89. package/lib/commonjs/types/stylesheet.js.map +1 -1
  90. package/lib/commonjs/utils.js.map +1 -1
  91. package/lib/commonjs/web/convert/index.js.map +1 -1
  92. package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -1
  93. package/lib/commonjs/web/convert/object/filter.js.map +1 -1
  94. package/lib/commonjs/web/convert/object/objectStyle.js.map +1 -1
  95. package/lib/commonjs/web/convert/object/transform.js.map +1 -1
  96. package/lib/commonjs/web/convert/pseudo.js.map +1 -1
  97. package/lib/commonjs/web/convert/shadow/boxShadow.js.map +1 -1
  98. package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js.map +1 -1
  99. package/lib/commonjs/web/convert/shadow/textShadow.js.map +1 -1
  100. package/lib/commonjs/web/convert/types.js.map +1 -1
  101. package/lib/commonjs/web/convert/utils.js.map +1 -1
  102. package/lib/commonjs/web/create.js +1 -5
  103. package/lib/commonjs/web/create.js.map +1 -1
  104. package/lib/commonjs/web/css/core.js.map +1 -1
  105. package/lib/commonjs/web/css/state.js.map +1 -1
  106. package/lib/commonjs/web/css/utils.js.map +1 -1
  107. package/lib/commonjs/web/index.js +1 -0
  108. package/lib/commonjs/web/index.js.map +1 -1
  109. package/lib/commonjs/web/listener.js +29 -8
  110. package/lib/commonjs/web/listener.js.map +1 -1
  111. package/lib/commonjs/web/registry.js.map +1 -1
  112. package/lib/commonjs/web/runtime.js +1 -2
  113. package/lib/commonjs/web/runtime.js.map +1 -1
  114. package/lib/commonjs/web/shadowRegistry.js.map +1 -1
  115. package/lib/commonjs/web/state.js +3 -3
  116. package/lib/commonjs/web/state.js.map +1 -1
  117. package/lib/commonjs/web/utils/common.js.map +1 -1
  118. package/lib/commonjs/web/utils/createUnistylesRef.js.map +1 -1
  119. package/lib/commonjs/web/utils/unistyle.js +2 -0
  120. package/lib/commonjs/web/utils/unistyle.js.map +1 -1
  121. package/lib/commonjs/web/variants.js.map +1 -1
  122. package/lib/commonjs/web-only/getWebProps.js.map +1 -1
  123. package/lib/commonjs/web-only/index.js.map +1 -1
  124. package/lib/module/components/AdaptiveTheme.js +1 -1
  125. package/lib/module/components/AdaptiveTheme.js.map +1 -1
  126. package/lib/module/components/ApplyScopedTheme.js.map +1 -1
  127. package/lib/module/components/Display.js.map +1 -1
  128. package/lib/module/components/Hide.js.map +1 -1
  129. package/lib/module/components/NamedTheme.js +2 -2
  130. package/lib/module/components/NamedTheme.js.map +1 -1
  131. package/lib/module/components/ScopedTheme.js.map +1 -1
  132. package/lib/module/components/native/ActivityIndicator.js.map +1 -1
  133. package/lib/module/components/native/Animated.js.map +1 -1
  134. package/lib/module/components/native/FlatList.js.map +1 -1
  135. package/lib/module/components/native/Image.js.map +1 -1
  136. package/lib/module/components/native/Image.native.js.map +1 -1
  137. package/lib/module/components/native/ImageBackground.js.map +1 -1
  138. package/lib/module/components/native/ImageBackground.native.js.map +1 -1
  139. package/lib/module/components/native/KeyboardAvoidingView.js.map +1 -1
  140. package/lib/module/components/native/NativeText.native.js.map +1 -1
  141. package/lib/module/components/native/NativeView.native.js.map +1 -1
  142. package/lib/module/components/native/Pressable.js.map +1 -1
  143. package/lib/module/components/native/Pressable.native.js.map +1 -1
  144. package/lib/module/components/native/RefreshControl.js.map +1 -1
  145. package/lib/module/components/native/SafeAreaView.js.map +1 -1
  146. package/lib/module/components/native/ScrollView.js.map +1 -1
  147. package/lib/module/components/native/SectionList.js.map +1 -1
  148. package/lib/module/components/native/Switch.js.map +1 -1
  149. package/lib/module/components/native/Text.js.map +1 -1
  150. package/lib/module/components/native/TextInput.js.map +1 -1
  151. package/lib/module/components/native/TouchableHighlight.js.map +1 -1
  152. package/lib/module/components/native/TouchableOpacity.js.map +1 -1
  153. package/lib/module/components/native/View.js.map +1 -1
  154. package/lib/module/components/native/VirtualizedList.js.map +1 -1
  155. package/lib/module/core/createUnistylesElement.js.map +1 -1
  156. package/lib/module/core/createUnistylesElement.native.js.map +1 -1
  157. package/lib/module/core/createUnistylesImageBackground.js.map +1 -1
  158. package/lib/module/core/getClassname.js.map +1 -1
  159. package/lib/module/core/parseBoxShadow.js.map +1 -1
  160. package/lib/module/core/useProxifiedUnistyles/listener.js.map +1 -1
  161. package/lib/module/core/useProxifiedUnistyles/listener.native.js +0 -1
  162. package/lib/module/core/useProxifiedUnistyles/listener.native.js.map +1 -1
  163. package/lib/module/core/useProxifiedUnistyles/useProxifiedUnistyles.js.map +1 -1
  164. package/lib/module/core/useUnistyles.js.map +1 -1
  165. package/lib/module/core/warn.js.map +1 -1
  166. package/lib/module/core/withUnistyles/withUnistyles.js +3 -1
  167. package/lib/module/core/withUnistyles/withUnistyles.js.map +1 -1
  168. package/lib/module/core/withUnistyles/withUnistyles.native.js +6 -0
  169. package/lib/module/core/withUnistyles/withUnistyles.native.js.map +1 -1
  170. package/lib/module/hooks/useMedia.js.map +1 -1
  171. package/lib/module/hooks/useMedia.native.js +0 -1
  172. package/lib/module/hooks/useMedia.native.js.map +1 -1
  173. package/lib/module/index.js +1 -0
  174. package/lib/module/index.js.map +1 -1
  175. package/lib/module/mocks.js +28 -8
  176. package/lib/module/mocks.js.map +1 -1
  177. package/lib/module/mq.js.map +1 -1
  178. package/lib/module/reanimated/useAnimatedTheme.js.map +1 -1
  179. package/lib/module/reanimated/useAnimatedTheme.native.js +0 -1
  180. package/lib/module/reanimated/useAnimatedTheme.native.js.map +1 -1
  181. package/lib/module/reanimated/variant/useAnimatedVariantColor.js.map +1 -1
  182. package/lib/module/reanimated/variant/useUpdateVariantColor.js.map +1 -1
  183. package/lib/module/reanimated/variant/useUpdateVariantColor.native.js +0 -1
  184. package/lib/module/reanimated/variant/useUpdateVariantColor.native.js.map +1 -1
  185. package/lib/module/server/getServerUnistyles.js.map +1 -1
  186. package/lib/module/server/useServerUnistyles.js.map +1 -1
  187. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
  188. package/lib/module/specs/ShadowRegistry/index.js +9 -5
  189. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  190. package/lib/module/specs/StatusBar/index.js.map +1 -1
  191. package/lib/module/specs/StyleSheet/index.js.map +1 -1
  192. package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js.map +1 -1
  193. package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
  194. package/lib/module/specs/index.native.js +1 -1
  195. package/lib/module/specs/index.native.js.map +1 -1
  196. package/lib/module/specs/types.js.map +1 -1
  197. package/lib/module/types/index.js.map +1 -1
  198. package/lib/module/types/stylesheet.js.map +1 -1
  199. package/lib/module/utils.js.map +1 -1
  200. package/lib/module/web/convert/index.js.map +1 -1
  201. package/lib/module/web/convert/object/boxShadow.js.map +1 -1
  202. package/lib/module/web/convert/object/filter.js.map +1 -1
  203. package/lib/module/web/convert/object/objectStyle.js.map +1 -1
  204. package/lib/module/web/convert/object/transform.js.map +1 -1
  205. package/lib/module/web/convert/pseudo.js.map +1 -1
  206. package/lib/module/web/convert/shadow/boxShadow.js.map +1 -1
  207. package/lib/module/web/convert/shadow/getShadowBreakpoints.js.map +1 -1
  208. package/lib/module/web/convert/shadow/textShadow.js.map +1 -1
  209. package/lib/module/web/convert/types.js.map +1 -1
  210. package/lib/module/web/convert/utils.js.map +1 -1
  211. package/lib/module/web/create.js +2 -6
  212. package/lib/module/web/create.js.map +1 -1
  213. package/lib/module/web/css/core.js.map +1 -1
  214. package/lib/module/web/css/state.js.map +1 -1
  215. package/lib/module/web/css/utils.js.map +1 -1
  216. package/lib/module/web/index.js +1 -0
  217. package/lib/module/web/index.js.map +1 -1
  218. package/lib/module/web/listener.js +29 -8
  219. package/lib/module/web/listener.js.map +1 -1
  220. package/lib/module/web/registry.js.map +1 -1
  221. package/lib/module/web/runtime.js +1 -2
  222. package/lib/module/web/runtime.js.map +1 -1
  223. package/lib/module/web/shadowRegistry.js.map +1 -1
  224. package/lib/module/web/state.js +3 -3
  225. package/lib/module/web/state.js.map +1 -1
  226. package/lib/module/web/utils/common.js.map +1 -1
  227. package/lib/module/web/utils/createUnistylesRef.js.map +1 -1
  228. package/lib/module/web/utils/unistyle.js +2 -0
  229. package/lib/module/web/utils/unistyle.js.map +1 -1
  230. package/lib/module/web/variants.js.map +1 -1
  231. package/lib/module/web-only/getWebProps.js.map +1 -1
  232. package/lib/module/web-only/index.js.map +1 -1
  233. package/lib/typescript/src/__tests__/mocks.spec.d.ts +2 -0
  234. package/lib/typescript/src/__tests__/mocks.spec.d.ts.map +1 -0
  235. package/lib/typescript/src/__tests__/web-listener.spec.d.ts +2 -0
  236. package/lib/typescript/src/__tests__/web-listener.spec.d.ts.map +1 -0
  237. package/lib/typescript/src/components/AdaptiveTheme.d.ts +1 -1
  238. package/lib/typescript/src/components/AdaptiveTheme.d.ts.map +1 -1
  239. package/lib/typescript/src/components/ApplyScopedTheme.d.ts.map +1 -1
  240. package/lib/typescript/src/components/Display.d.ts.map +1 -1
  241. package/lib/typescript/src/components/Hide.d.ts.map +1 -1
  242. package/lib/typescript/src/components/NamedTheme.d.ts +1 -1
  243. package/lib/typescript/src/components/NamedTheme.d.ts.map +1 -1
  244. package/lib/typescript/src/components/ScopedTheme.d.ts.map +1 -1
  245. package/lib/typescript/src/components/native/ActivityIndicator.d.ts.map +1 -1
  246. package/lib/typescript/src/components/native/Animated.d.ts.map +1 -1
  247. package/lib/typescript/src/components/native/FlatList.d.ts.map +1 -1
  248. package/lib/typescript/src/components/native/Image.d.ts.map +1 -1
  249. package/lib/typescript/src/components/native/Image.native.d.ts.map +1 -1
  250. package/lib/typescript/src/components/native/ImageBackground.d.ts.map +1 -1
  251. package/lib/typescript/src/components/native/ImageBackground.native.d.ts.map +1 -1
  252. package/lib/typescript/src/components/native/KeyboardAvoidingView.d.ts.map +1 -1
  253. package/lib/typescript/src/components/native/NativeText.native.d.ts.map +1 -1
  254. package/lib/typescript/src/components/native/NativeView.native.d.ts.map +1 -1
  255. package/lib/typescript/src/components/native/Pressable.d.ts +1 -1
  256. package/lib/typescript/src/components/native/Pressable.d.ts.map +1 -1
  257. package/lib/typescript/src/components/native/Pressable.native.d.ts +1 -1
  258. package/lib/typescript/src/components/native/Pressable.native.d.ts.map +1 -1
  259. package/lib/typescript/src/components/native/RefreshControl.d.ts.map +1 -1
  260. package/lib/typescript/src/components/native/SafeAreaView.d.ts.map +1 -1
  261. package/lib/typescript/src/components/native/ScrollView.d.ts.map +1 -1
  262. package/lib/typescript/src/components/native/SectionList.d.ts.map +1 -1
  263. package/lib/typescript/src/components/native/Switch.d.ts.map +1 -1
  264. package/lib/typescript/src/components/native/Text.d.ts.map +1 -1
  265. package/lib/typescript/src/components/native/TextInput.d.ts.map +1 -1
  266. package/lib/typescript/src/components/native/TouchableHighlight.d.ts.map +1 -1
  267. package/lib/typescript/src/components/native/TouchableOpacity.d.ts.map +1 -1
  268. package/lib/typescript/src/components/native/View.d.ts.map +1 -1
  269. package/lib/typescript/src/components/native/VirtualizedList.d.ts.map +1 -1
  270. package/lib/typescript/src/core/createUnistylesElement.d.ts.map +1 -1
  271. package/lib/typescript/src/core/createUnistylesElement.native.d.ts.map +1 -1
  272. package/lib/typescript/src/core/createUnistylesImageBackground.d.ts.map +1 -1
  273. package/lib/typescript/src/core/getClassname.d.ts.map +1 -1
  274. package/lib/typescript/src/core/parseBoxShadow.d.ts.map +1 -1
  275. package/lib/typescript/src/core/useProxifiedUnistyles/listener.d.ts.map +1 -1
  276. package/lib/typescript/src/core/useProxifiedUnistyles/listener.native.d.ts +1 -1
  277. package/lib/typescript/src/core/useProxifiedUnistyles/listener.native.d.ts.map +1 -1
  278. package/lib/typescript/src/core/useProxifiedUnistyles/types.d.ts.map +1 -1
  279. package/lib/typescript/src/core/useProxifiedUnistyles/useProxifiedUnistyles.d.ts +1 -1
  280. package/lib/typescript/src/core/useProxifiedUnistyles/useProxifiedUnistyles.d.ts.map +1 -1
  281. package/lib/typescript/src/core/useUnistyles.d.ts.map +1 -1
  282. package/lib/typescript/src/core/withUnistyles/types.d.ts +1 -1
  283. package/lib/typescript/src/core/withUnistyles/types.d.ts.map +1 -1
  284. package/lib/typescript/src/core/withUnistyles/withUnistyles.d.ts.map +1 -1
  285. package/lib/typescript/src/core/withUnistyles/withUnistyles.native.d.ts.map +1 -1
  286. package/lib/typescript/src/global.d.ts.map +1 -1
  287. package/lib/typescript/src/hooks/useMedia.d.ts.map +1 -1
  288. package/lib/typescript/src/hooks/useMedia.native.d.ts.map +1 -1
  289. package/lib/typescript/src/index.d.ts +1 -0
  290. package/lib/typescript/src/index.d.ts.map +1 -1
  291. package/lib/typescript/src/mq.d.ts.map +1 -1
  292. package/lib/typescript/src/reanimated/useAnimatedTheme.d.ts.map +1 -1
  293. package/lib/typescript/src/reanimated/useAnimatedTheme.native.d.ts.map +1 -1
  294. package/lib/typescript/src/reanimated/variant/types.d.ts.map +1 -1
  295. package/lib/typescript/src/reanimated/variant/useAnimatedVariantColor.d.ts.map +1 -1
  296. package/lib/typescript/src/reanimated/variant/useUpdateVariantColor.d.ts +1 -1
  297. package/lib/typescript/src/reanimated/variant/useUpdateVariantColor.d.ts.map +1 -1
  298. package/lib/typescript/src/reanimated/variant/useUpdateVariantColor.native.d.ts +1 -1
  299. package/lib/typescript/src/reanimated/variant/useUpdateVariantColor.native.d.ts.map +1 -1
  300. package/lib/typescript/src/server/getServerUnistyles.d.ts +1 -1
  301. package/lib/typescript/src/server/getServerUnistyles.d.ts.map +1 -1
  302. package/lib/typescript/src/server/types.d.ts.map +1 -1
  303. package/lib/typescript/src/server/useServerUnistyles.d.ts.map +1 -1
  304. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
  305. package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts.map +1 -1
  306. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  307. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +4 -5
  308. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
  309. package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts.map +1 -1
  310. package/lib/typescript/src/specs/StatusBar/index.d.ts +1 -1
  311. package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
  312. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts +0 -1
  313. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts.map +1 -1
  314. package/lib/typescript/src/specs/StyleSheet/index.d.ts +3 -3
  315. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  316. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
  317. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +1 -1
  318. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
  319. package/lib/typescript/src/specs/index.native.d.ts +4 -4
  320. package/lib/typescript/src/specs/index.native.d.ts.map +1 -1
  321. package/lib/typescript/src/specs/types.d.ts.map +1 -1
  322. package/lib/typescript/src/types/breakpoints.d.ts +2 -2
  323. package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
  324. package/lib/typescript/src/types/core.d.ts.map +1 -1
  325. package/lib/typescript/src/types/index.d.ts +1 -1
  326. package/lib/typescript/src/types/index.d.ts.map +1 -1
  327. package/lib/typescript/src/types/stylesheet.d.ts +1 -1
  328. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
  329. package/lib/typescript/src/types/variants.d.ts.map +1 -1
  330. package/lib/typescript/src/utils.d.ts.map +1 -1
  331. package/lib/typescript/src/web/convert/index.d.ts.map +1 -1
  332. package/lib/typescript/src/web/convert/object/boxShadow.d.ts.map +1 -1
  333. package/lib/typescript/src/web/convert/object/filter.d.ts.map +1 -1
  334. package/lib/typescript/src/web/convert/object/objectStyle.d.ts.map +1 -1
  335. package/lib/typescript/src/web/convert/object/transform.d.ts.map +1 -1
  336. package/lib/typescript/src/web/convert/pseudo.d.ts.map +1 -1
  337. package/lib/typescript/src/web/convert/types.d.ts +2 -2
  338. package/lib/typescript/src/web/convert/types.d.ts.map +1 -1
  339. package/lib/typescript/src/web/convert/utils.d.ts.map +1 -1
  340. package/lib/typescript/src/web/create.d.ts +1 -1
  341. package/lib/typescript/src/web/create.d.ts.map +1 -1
  342. package/lib/typescript/src/web/css/core.d.ts.map +1 -1
  343. package/lib/typescript/src/web/css/state.d.ts.map +1 -1
  344. package/lib/typescript/src/web/css/utils.d.ts.map +1 -1
  345. package/lib/typescript/src/web/index.d.ts.map +1 -1
  346. package/lib/typescript/src/web/listener.d.ts +5 -1
  347. package/lib/typescript/src/web/listener.d.ts.map +1 -1
  348. package/lib/typescript/src/web/registry.d.ts +1 -1
  349. package/lib/typescript/src/web/registry.d.ts.map +1 -1
  350. package/lib/typescript/src/web/runtime.d.ts +1 -1
  351. package/lib/typescript/src/web/runtime.d.ts.map +1 -1
  352. package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -1
  353. package/lib/typescript/src/web/state.d.ts.map +1 -1
  354. package/lib/typescript/src/web/types.d.ts +1 -1
  355. package/lib/typescript/src/web/types.d.ts.map +1 -1
  356. package/lib/typescript/src/web/utils/common.d.ts.map +1 -1
  357. package/lib/typescript/src/web/utils/createUnistylesRef.d.ts.map +1 -1
  358. package/lib/typescript/src/web/utils/unistyle.d.ts +1 -1
  359. package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -1
  360. package/lib/typescript/src/web/variants.d.ts.map +1 -1
  361. package/lib/typescript/src/web-only/getWebProps.d.ts.map +1 -1
  362. package/lib/typescript/src/web-only/index.d.ts.map +1 -1
  363. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +36 -42
  364. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +19 -22
  365. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +15 -18
  366. package/nitrogen/generated/android/unistylesOnLoad.cpp +14 -9
  367. package/nitrogen/generated/android/unistylesOnLoad.hpp +13 -4
  368. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.cpp +0 -1
  369. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +0 -1
  370. package/package.json +43 -44
  371. package/plugin/index.d.ts +34 -28
  372. package/plugin/index.js +113 -103
  373. package/repack-plugin/index.d.ts +2 -2
  374. package/src/components/AdaptiveTheme.tsx +8 -12
  375. package/src/components/ApplyScopedTheme.tsx +2 -0
  376. package/src/components/Display.tsx +2 -3
  377. package/src/components/Hide.tsx +2 -3
  378. package/src/components/NamedTheme.tsx +9 -14
  379. package/src/components/ScopedTheme.tsx +22 -27
  380. package/src/components/native/ActivityIndicator.tsx +1 -0
  381. package/src/components/native/Animated.tsx +2 -1
  382. package/src/components/native/FlatList.tsx +1 -0
  383. package/src/components/native/Image.native.tsx +1 -0
  384. package/src/components/native/Image.tsx +11 -7
  385. package/src/components/native/ImageBackground.native.tsx +1 -0
  386. package/src/components/native/ImageBackground.tsx +11 -7
  387. package/src/components/native/KeyboardAvoidingView.tsx +1 -0
  388. package/src/components/native/NativeText.native.tsx +3 -1
  389. package/src/components/native/NativeView.native.tsx +3 -1
  390. package/src/components/native/Pressable.native.tsx +8 -8
  391. package/src/components/native/Pressable.tsx +25 -20
  392. package/src/components/native/RefreshControl.tsx +1 -0
  393. package/src/components/native/SafeAreaView.tsx +1 -0
  394. package/src/components/native/ScrollView.tsx +1 -0
  395. package/src/components/native/SectionList.tsx +1 -0
  396. package/src/components/native/Switch.tsx +1 -0
  397. package/src/components/native/Text.tsx +1 -0
  398. package/src/components/native/TextInput.tsx +1 -0
  399. package/src/components/native/TouchableHighlight.tsx +1 -0
  400. package/src/components/native/TouchableOpacity.tsx +1 -0
  401. package/src/components/native/View.tsx +1 -0
  402. package/src/components/native/VirtualizedList.tsx +1 -0
  403. package/src/core/createUnistylesElement.native.tsx +4 -2
  404. package/src/core/createUnistylesElement.tsx +14 -17
  405. package/src/core/createUnistylesImageBackground.tsx +6 -4
  406. package/src/core/getClassname.ts +4 -11
  407. package/src/core/parseBoxShadow.ts +11 -24
  408. package/src/core/passForwardRef.ts +1 -1
  409. package/src/core/useProxifiedUnistyles/listener.native.ts +3 -3
  410. package/src/core/useProxifiedUnistyles/listener.ts +10 -3
  411. package/src/core/useProxifiedUnistyles/types.ts +2 -2
  412. package/src/core/useProxifiedUnistyles/useProxifiedUnistyles.ts +13 -9
  413. package/src/core/useUnistyles.ts +2 -1
  414. package/src/core/warn.ts +4 -4
  415. package/src/core/withUnistyles/types.ts +7 -4
  416. package/src/core/withUnistyles/withUnistyles.native.tsx +53 -44
  417. package/src/core/withUnistyles/withUnistyles.tsx +30 -24
  418. package/src/global.ts +2 -2
  419. package/src/hooks/useMedia.native.ts +2 -2
  420. package/src/hooks/useMedia.ts +6 -3
  421. package/src/index.ts +1 -0
  422. package/src/mocks.ts +74 -49
  423. package/src/mq.ts +23 -15
  424. package/src/reanimated/useAnimatedTheme.native.ts +4 -3
  425. package/src/reanimated/useAnimatedTheme.ts +6 -2
  426. package/src/reanimated/variant/types.ts +11 -10
  427. package/src/reanimated/variant/useAnimatedVariantColor.ts +7 -7
  428. package/src/reanimated/variant/useUpdateVariantColor.native.ts +10 -6
  429. package/src/reanimated/variant/useUpdateVariantColor.ts +21 -21
  430. package/src/server/getServerUnistyles.tsx +11 -4
  431. package/src/server/index.ts +0 -1
  432. package/src/server/types.ts +1 -1
  433. package/src/server/useServerUnistyles.tsx +4 -1
  434. package/src/specs/NativePlatform/NativePlatform.nitro.ts +30 -27
  435. package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.ts +3 -3
  436. package/src/specs/ShadowRegistry/ShadowRegistry.nitro.ts +1 -1
  437. package/src/specs/ShadowRegistry/index.ts +35 -29
  438. package/src/specs/ShadowRegistry/types.ts +9 -10
  439. package/src/specs/StatusBar/UnistylesStatusBar.nitro.ts +4 -4
  440. package/src/specs/StatusBar/index.ts +5 -5
  441. package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.ts +2 -2
  442. package/src/specs/StyleSheet/index.ts +32 -27
  443. package/src/specs/TurboUnistyles/NativeTurboUnistyles.ts +1 -0
  444. package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +26 -25
  445. package/src/specs/UnistylesRuntime/index.ts +20 -20
  446. package/src/specs/index.native.ts +6 -18
  447. package/src/specs/types.ts +9 -8
  448. package/src/types/accessibility.ts +2 -2
  449. package/src/types/breakpoints.ts +61 -59
  450. package/src/types/core.ts +17 -17
  451. package/src/types/index.ts +2 -9
  452. package/src/types/stylesheet.ts +27 -19
  453. package/src/types/variants.ts +3 -11
  454. package/src/utils.ts +16 -16
  455. package/src/web/convert/index.ts +6 -2
  456. package/src/web/convert/object/boxShadow.ts +23 -18
  457. package/src/web/convert/object/filter.ts +30 -13
  458. package/src/web/convert/object/objectStyle.ts +33 -23
  459. package/src/web/convert/object/transform.ts +10 -8
  460. package/src/web/convert/pseudo.ts +2 -2
  461. package/src/web/convert/shadow/boxShadow.ts +6 -6
  462. package/src/web/convert/shadow/getShadowBreakpoints.ts +4 -4
  463. package/src/web/convert/shadow/textShadow.ts +6 -6
  464. package/src/web/convert/style.ts +25 -25
  465. package/src/web/convert/types.ts +4 -3
  466. package/src/web/convert/utils.ts +20 -10
  467. package/src/web/create.ts +29 -20
  468. package/src/web/css/core.ts +2 -1
  469. package/src/web/css/state.ts +11 -8
  470. package/src/web/css/utils.ts +2 -1
  471. package/src/web/index.ts +7 -4
  472. package/src/web/listener.ts +61 -18
  473. package/src/web/mock.ts +2 -2
  474. package/src/web/registry.ts +17 -10
  475. package/src/web/runtime.ts +23 -17
  476. package/src/web/shadowRegistry.ts +26 -24
  477. package/src/web/state.ts +23 -16
  478. package/src/web/types.ts +5 -5
  479. package/src/web/utils/common.ts +7 -9
  480. package/src/web/utils/createUnistylesRef.ts +18 -14
  481. package/src/web/utils/unistyle.ts +53 -34
  482. package/src/web/variants.ts +19 -11
  483. package/src/web-only/getWebProps.ts +5 -6
  484. package/src/web-only/index.ts +0 -1
  485. package/LICENSE +0 -20
  486. package/lib/typescript/plugin/src/consts.d.ts +0 -17
  487. package/lib/typescript/plugin/src/consts.d.ts.map +0 -1
  488. package/lib/typescript/repack-plugin/src/index.d.ts +0 -18
  489. package/lib/typescript/repack-plugin/src/index.d.ts.map +0 -1
  490. package/lib/typescript/repack-plugin/src/loader.d.ts +0 -9
  491. package/lib/typescript/repack-plugin/src/loader.d.ts.map +0 -1
@@ -1,18 +1,51 @@
1
- import { UnistyleDependency } from '../specs/NativePlatform'
2
1
  import type { UnistylesServices } from './types'
3
2
 
3
+ import { UnistyleDependency } from '../specs/NativePlatform'
4
+
4
5
  type Listener = (dependency: UnistyleDependency) => void
6
+ type PublicListener = (dependencies: Array<UnistyleDependency>) => void
5
7
 
6
8
  export class UnistylesListener {
7
9
  private isInitialized = false
8
10
  private listeners = Array.from({ length: Object.keys(UnistyleDependency).length / 2 }, () => new Set<Listener>())
9
- private stylesheetListeners = Array.from({ length: Object.keys(UnistyleDependency).length / 2 }, () => new Set<Listener>())
11
+ private stylesheetListeners = Array.from(
12
+ { length: Object.keys(UnistyleDependency).length / 2 },
13
+ () => new Set<Listener>(),
14
+ )
15
+ private changeListeners = new Set<PublicListener>()
10
16
 
11
17
  constructor(private services: UnistylesServices) {}
12
18
 
19
+ emitChanges = (dependencies: Array<UnistyleDependency>) => {
20
+ for (const dependency of dependencies) {
21
+ const stylesheetListeners = this.stylesheetListeners[dependency] ?? []
22
+
23
+ for (const listener of stylesheetListeners) {
24
+ listener(dependency)
25
+ }
26
+
27
+ const listeners = this.listeners[dependency] ?? []
28
+
29
+ for (const listener of listeners) {
30
+ listener(dependency)
31
+ }
32
+ }
33
+
34
+ for (const listener of this.changeListeners) {
35
+ listener(dependencies.slice())
36
+ }
37
+ }
38
+
13
39
  emitChange = (dependency: UnistyleDependency) => {
14
- this.stylesheetListeners[dependency]?.forEach(listener => listener(dependency))
15
- this.listeners[dependency]?.forEach(listener => listener(dependency))
40
+ this.emitChanges([dependency])
41
+ }
42
+
43
+ addChangeListener = (listener: PublicListener) => {
44
+ this.changeListeners.add(listener)
45
+
46
+ return () => {
47
+ this.changeListeners.delete(listener)
48
+ }
16
49
  }
17
50
 
18
51
  initListeners = () => {
@@ -22,29 +55,39 @@ export class UnistylesListener {
22
55
 
23
56
  this.isInitialized = true
24
57
 
25
- this.services.runtime.darkMedia?.addEventListener('change', event => {
58
+ this.services.runtime.darkMedia?.addEventListener('change', (event) => {
26
59
  if (!event.matches) {
27
60
  return
28
61
  }
29
62
 
30
- this.emitChange(UnistyleDependency.ColorScheme)
31
-
32
63
  if (this.services.runtime.hasAdaptiveThemes) {
33
- this.emitChange(UnistyleDependency.Theme)
34
- this.emitChange(UnistyleDependency.ThemeName)
64
+ this.emitChanges([
65
+ UnistyleDependency.ColorScheme,
66
+ UnistyleDependency.Theme,
67
+ UnistyleDependency.ThemeName,
68
+ ])
69
+
70
+ return
35
71
  }
72
+
73
+ this.emitChange(UnistyleDependency.ColorScheme)
36
74
  })
37
- this.services.runtime.lightMedia?.addEventListener('change', event => {
75
+ this.services.runtime.lightMedia?.addEventListener('change', (event) => {
38
76
  if (!event.matches) {
39
77
  return
40
78
  }
41
79
 
42
- this.emitChange(UnistyleDependency.ColorScheme)
43
-
44
80
  if (this.services.runtime.hasAdaptiveThemes) {
45
- this.emitChange(UnistyleDependency.Theme)
46
- this.emitChange(UnistyleDependency.ThemeName)
81
+ this.emitChanges([
82
+ UnistyleDependency.ColorScheme,
83
+ UnistyleDependency.Theme,
84
+ UnistyleDependency.ThemeName,
85
+ ])
86
+
87
+ return
47
88
  }
89
+
90
+ this.emitChange(UnistyleDependency.ColorScheme)
48
91
  })
49
92
 
50
93
  window.addEventListener('orientationchange', () => this.emitChange(UnistyleDependency.Orientation))
@@ -52,18 +95,18 @@ export class UnistylesListener {
52
95
  }
53
96
 
54
97
  addListeners = (dependencies: Array<UnistyleDependency>, listener: Listener) => {
55
- dependencies.forEach(dependency => this.listeners[dependency]?.add(listener))
98
+ dependencies.forEach((dependency) => this.listeners[dependency]?.add(listener))
56
99
 
57
100
  return () => {
58
- dependencies.forEach(dependency => this.listeners[dependency]?.delete(listener))
101
+ dependencies.forEach((dependency) => this.listeners[dependency]?.delete(listener))
59
102
  }
60
103
  }
61
104
 
62
105
  addStylesheetListeners = (dependencies: Array<UnistyleDependency>, listener: Listener) => {
63
- dependencies.forEach(dependency => this.stylesheetListeners[dependency]?.add(listener))
106
+ dependencies.forEach((dependency) => this.stylesheetListeners[dependency]?.add(listener))
64
107
 
65
108
  return () => {
66
- dependencies.forEach(dependency => this.stylesheetListeners[dependency]?.delete(listener))
109
+ dependencies.forEach((dependency) => this.stylesheetListeners[dependency]?.delete(listener))
67
110
  }
68
111
  }
69
112
  }
package/src/web/mock.ts CHANGED
@@ -9,7 +9,7 @@ export const StatusBar: StatusBarSpec = {
9
9
  equals: () => true,
10
10
  toString: () => 'StatusBar',
11
11
  __type: 'web',
12
- name: 'StatusBar'
12
+ name: 'StatusBar',
13
13
  }
14
14
 
15
15
  export const NavigationBar: NavigationBarSpec = {
@@ -20,5 +20,5 @@ export const NavigationBar: NavigationBarSpec = {
20
20
  dispose: () => {},
21
21
  toString: () => 'NavigationBar',
22
22
  __type: 'web',
23
- name: 'NavigationBar'
23
+ name: 'NavigationBar',
24
24
  }
@@ -1,8 +1,9 @@
1
1
  import type { UnistyleDependency, UnistylesMiniRuntime } from '../specs'
2
2
  import type { UnistylesTheme, UnistylesValues } from '../types'
3
3
  import type { StyleSheet, StyleSheetWithSuperPowers } from '../types/stylesheet'
4
- import { CSSState } from './css'
5
4
  import type { UnistylesServices } from './types'
5
+
6
+ import { CSSState } from './css'
6
7
  import { error, extractUnistyleDependencies, generateHash } from './utils'
7
8
 
8
9
  export class UnistylesRegistry {
@@ -26,7 +27,9 @@ export class UnistylesRegistry {
26
27
  const scopedTheme = this.services.runtime.getTheme(scopedThemeName)
27
28
 
28
29
  if (!scopedTheme) {
29
- throw error(`Unistyles: You're trying to use scoped theme '${scopedThemeName}' but it wasn't registered.`)
30
+ throw error(
31
+ `Unistyles: You're trying to use scoped theme '${scopedThemeName}' but it wasn't registered.`,
32
+ )
30
33
  }
31
34
 
32
35
  return stylesheet(scopedTheme, this.services.runtime.miniRuntime)
@@ -38,9 +41,12 @@ export class UnistylesRegistry {
38
41
  return computedStylesheet
39
42
  }
40
43
 
41
- const currentTheme = this.services.runtime.getTheme(this.services.runtime.themeName, this.services.state.CSSVars)
44
+ const currentTheme = this.services.runtime.getTheme(
45
+ this.services.runtime.themeName,
46
+ this.services.state.CSSVars,
47
+ )
42
48
  const createdStylesheet = stylesheet(currentTheme, this.services.runtime.miniRuntime)
43
- const dependencies = Object.values(createdStylesheet).flatMap(value => extractUnistyleDependencies(value))
49
+ const dependencies = Object.values(createdStylesheet).flatMap((value) => extractUnistyleDependencies(value))
44
50
 
45
51
  this.addDependenciesToStylesheet(stylesheet, dependencies)
46
52
  this.stylesheets.set(stylesheet, createdStylesheet)
@@ -48,17 +54,20 @@ export class UnistylesRegistry {
48
54
  return createdStylesheet
49
55
  }
50
56
 
51
- addDependenciesToStylesheet = (stylesheet: (theme: UnistylesTheme, miniRuntime: UnistylesMiniRuntime) => StyleSheet, dependencies: Array<UnistyleDependency>) => {
57
+ addDependenciesToStylesheet = (
58
+ stylesheet: (theme: UnistylesTheme, miniRuntime: UnistylesMiniRuntime) => StyleSheet,
59
+ dependencies: Array<UnistyleDependency>,
60
+ ) => {
52
61
  this.disposeListenersMap.get(stylesheet)?.()
53
62
 
54
63
  const dependenciesMap = this.dependenciesMap.get(stylesheet) ?? new Set(dependencies)
55
64
 
56
- dependencies.forEach(dependency => dependenciesMap.add(dependency))
65
+ dependencies.forEach((dependency) => dependenciesMap.add(dependency))
57
66
 
58
67
  const dispose = this.services.listener.addStylesheetListeners(Array.from(dependenciesMap), () => {
59
68
  const newComputedStylesheet = stylesheet(
60
69
  this.services.runtime.getTheme(this.services.runtime.themeName, this.services.state.CSSVars),
61
- this.services.runtime.miniRuntime
70
+ this.services.runtime.miniRuntime,
62
71
  )
63
72
 
64
73
  this.stylesheets.set(stylesheet, newComputedStylesheet)
@@ -100,9 +109,7 @@ export class UnistylesRegistry {
100
109
 
101
110
  add = (value: UnistylesValues, forChild?: boolean) => {
102
111
  const generatedHash = generateHash(value)
103
- const hash = forChild
104
- ? `${generatedHash} > *`
105
- : generatedHash
112
+ const hash = forChild ? `${generatedHash} > *` : generatedHash
106
113
 
107
114
  if (!this.stylesCache.has(hash)) {
108
115
  this.applyStyles(hash, value)
@@ -1,9 +1,10 @@
1
- import { UnistyleDependency } from '../specs/NativePlatform'
2
1
  import type { UnistylesMiniRuntime } from '../specs/UnistylesRuntime'
2
+ import type { UnistylesServices } from './types'
3
+
4
+ import { UnistyleDependency } from '../specs/NativePlatform'
3
5
  import { type AppTheme, type AppThemeName, ColorScheme, Orientation } from '../specs/types'
4
6
  import { type UnistylesTheme, WebContentSizeCategory } from '../types'
5
7
  import { NavigationBar, StatusBar } from './mock'
6
- import type { UnistylesServices } from './types'
7
8
  import { convertTheme, error, isServer, schemeToTheme } from './utils'
8
9
 
9
10
  export class UnistylesRuntime {
@@ -102,13 +103,13 @@ export class UnistylesRuntime {
102
103
  if (isServer()) {
103
104
  return {
104
105
  width: 0,
105
- height: 0
106
+ height: 0,
106
107
  }
107
108
  }
108
109
 
109
110
  return {
110
111
  width: window.innerWidth,
111
- height: window.innerHeight
112
+ height: window.innerHeight,
112
113
  }
113
114
  }
114
115
 
@@ -122,7 +123,7 @@ export class UnistylesRuntime {
122
123
  bottom: 0,
123
124
  left: 0,
124
125
  right: 0,
125
- ime: 0
126
+ ime: 0,
126
127
  }
127
128
  }
128
129
 
@@ -156,14 +157,14 @@ export class UnistylesRuntime {
156
157
  insets: this.insets,
157
158
  statusBar: {
158
159
  width: this.statusBar.width,
159
- height: this.statusBar.height
160
+ height: this.statusBar.height,
160
161
  },
161
162
  navigationBar: {
162
163
  width: this.navigationBar.width,
163
164
  height: this.navigationBar.height,
164
165
  },
165
166
  rtl: this.rtl,
166
- hasAdaptiveThemes: this.hasAdaptiveThemes
167
+ hasAdaptiveThemes: this.hasAdaptiveThemes,
167
168
  }
168
169
  }
169
170
 
@@ -179,8 +180,7 @@ export class UnistylesRuntime {
179
180
  const oldTheme = this.services.state.themeName
180
181
 
181
182
  this.services.state.themeName = themeName
182
- this.services.listener.emitChange(UnistyleDependency.Theme)
183
- this.services.listener.emitChange(UnistyleDependency.ThemeName)
183
+ this.services.listener.emitChanges([UnistyleDependency.Theme, UnistyleDependency.ThemeName])
184
184
 
185
185
  if (!isServer() && !this.services.state.hasAdaptiveThemes && this.services.state.CSSVars) {
186
186
  this.rootElement?.classList.remove(oldTheme ?? '')
@@ -232,9 +232,11 @@ export class UnistylesRuntime {
232
232
  if (this.services.state.CSSVars) {
233
233
  this.services.state.cssThemes.set(
234
234
  themeName,
235
- Object.fromEntries(Object.entries(newTheme).map(([key, value]) => {
236
- return convertTheme(key, value)
237
- })) as UnistylesTheme
235
+ Object.fromEntries(
236
+ Object.entries(newTheme).map(([key, value]) => {
237
+ return convertTheme(key, value)
238
+ }),
239
+ ) as UnistylesTheme,
238
240
  )
239
241
  this.services.registry.css.addTheme(themeName, newTheme)
240
242
  this.services.registry.css.recreate()
@@ -247,16 +249,20 @@ export class UnistylesRuntime {
247
249
  if (!hasSomeThemes) {
248
250
  return new Proxy({} as UnistylesTheme, {
249
251
  get: () => {
250
- throw error('One of your stylesheets is trying to get the theme, but no theme has been selected yet. Did you forget to call StyleSheet.configure? If you called it, make sure you did so before any StyleSheet.create.')
251
- }
252
+ throw error(
253
+ 'One of your stylesheets is trying to get the theme, but no theme has been selected yet. Did you forget to call StyleSheet.configure? If you called it, make sure you did so before any StyleSheet.create.',
254
+ )
255
+ },
252
256
  })
253
257
  }
254
258
 
255
259
  if (!themeName) {
256
260
  return new Proxy({} as UnistylesTheme, {
257
261
  get: () => {
258
- throw error('One of your stylesheets is trying to get the theme, but no theme has been selected yet. Did you forget to select an initial theme?')
259
- }
262
+ throw error(
263
+ 'One of your stylesheets is trying to get the theme, but no theme has been selected yet. Did you forget to select an initial theme?',
264
+ )
265
+ },
260
266
  })
261
267
  }
262
268
 
@@ -268,7 +274,7 @@ export class UnistylesRuntime {
268
274
  return new Proxy({} as UnistylesTheme, {
269
275
  get: () => {
270
276
  throw error(`You're trying to get theme "${themeName}" but it wasn't registered.`)
271
- }
277
+ },
272
278
  })
273
279
  }
274
280
 
@@ -1,7 +1,8 @@
1
- import { UnistyleDependency } from '../specs/NativePlatform/NativePlatform.nitro'
2
1
  import type { UnistylesTheme, UnistylesValues } from '../types'
3
- import { deepMergeObjects } from '../utils'
4
2
  import type { UniGeneratedStyle, UnistylesServices } from './types'
3
+
4
+ import { UnistyleDependency } from '../specs/NativePlatform/NativePlatform.nitro'
5
+ import { deepMergeObjects } from '../utils'
5
6
  import { extractSecrets, extractUnistyleDependencies, isGeneratedUnistyle, isServer } from './utils'
6
7
  import { getVariants } from './variants'
7
8
 
@@ -36,7 +37,7 @@ export class UnistylesShadowRegistry {
36
37
  }
37
38
 
38
39
  const getParsedStyles = () => {
39
- const allStyles = unistyles.map(unistyle => {
40
+ const allStyles = unistyles.map((unistyle) => {
40
41
  const secrets = extractSecrets(unistyle)
41
42
 
42
43
  // Regular style
@@ -50,11 +51,12 @@ export class UnistylesShadowRegistry {
50
51
  }
51
52
 
52
53
  const { __uni__key, __uni__stylesheet, __uni__args = [], __stylesheetVariants: variants } = secrets
53
- const newComputedStylesheet = this.services.registry.getComputedStylesheet(__uni__stylesheet, scopedTheme)
54
- const style = newComputedStylesheet[__uni__key] as (UnistylesValues | ((...args: any) => UnistylesValues))
55
- const result = typeof style === 'function'
56
- ? style(...__uni__args)
57
- : style
54
+ const newComputedStylesheet = this.services.registry.getComputedStylesheet(
55
+ __uni__stylesheet,
56
+ scopedTheme,
57
+ )
58
+ const style = newComputedStylesheet[__uni__key] as UnistylesValues | ((...args: any) => UnistylesValues)
59
+ const result = typeof style === 'function' ? style(...__uni__args) : style
58
60
  const variantsResult = getVariants(result, variants)
59
61
  const resultWithVariants = deepMergeObjects(result, variantsResult)
60
62
  const dependencies = extractUnistyleDependencies(resultWithVariants)
@@ -66,7 +68,7 @@ export class UnistylesShadowRegistry {
66
68
 
67
69
  return {
68
70
  ...resultWithVariants,
69
- ...resultWithVariants._web
71
+ ...resultWithVariants._web,
70
72
  } as UnistylesValues
71
73
  })
72
74
 
@@ -81,18 +83,19 @@ export class UnistylesShadowRegistry {
81
83
  const injectedClassName = Array.isArray(injectedClassNames) ? injectedClassNames.join(' ') : injectedClassNames
82
84
  const dependencies = extractUnistyleDependencies(parsedStyles)
83
85
  const filteredDependencies = this.services.state.CSSVars
84
- ? dependencies.filter(dependency => dependency !== UnistyleDependency.Theme)
86
+ ? dependencies.filter((dependency) => dependency !== UnistyleDependency.Theme)
85
87
  : dependencies
86
88
 
87
89
  if (!existingHash) {
88
- this.disposeMap.set(hash, this.services.listener.addListeners(filteredDependencies, () => {
89
- this.services.registry.applyStyles(hash, getParsedStyles())
90
- }))
90
+ this.disposeMap.set(
91
+ hash,
92
+ this.services.listener.addListeners(filteredDependencies, () => {
93
+ this.services.registry.applyStyles(hash, getParsedStyles())
94
+ }),
95
+ )
91
96
  }
92
97
 
93
- const hashClassname = forChild
94
- ? hash.replace(' > *', '')
95
- : hash
98
+ const hashClassname = forChild ? hash.replace(' > *', '') : hash
96
99
 
97
100
  return { injectedClassName, hash: hashClassname, parsedStyles }
98
101
  }
@@ -108,15 +111,14 @@ export class UnistylesShadowRegistry {
108
111
  return
109
112
  }
110
113
 
111
- this.services.registry.remove(ref, hash)
112
- .then(removed => {
113
- if (!removed) {
114
- return
115
- }
114
+ this.services.registry.remove(ref, hash).then((removed) => {
115
+ if (!removed) {
116
+ return
117
+ }
116
118
 
117
- this.disposeMap.get(hash)?.()
118
- this.disposeMap.delete(hash)
119
- })
119
+ this.disposeMap.get(hash)?.()
120
+ this.disposeMap.delete(hash)
121
+ })
120
122
  }
121
123
 
122
124
  flush = () => {}
package/src/web/state.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  import type { UnistylesBreakpoints, UnistylesThemes } from '../global'
2
- import { UnistyleDependency } from '../specs/NativePlatform'
3
2
  import type { UnistylesConfig } from '../specs/StyleSheet'
4
3
  import type { AppBreakpoint, AppTheme, AppThemeName } from '../specs/types'
5
4
  import type { UnistylesTheme } from '../types'
6
5
  import type { UnionToIntersection } from '../types'
7
6
  import type { UnistylesServices } from './types'
7
+
8
+ import { UnistyleDependency } from '../specs/NativePlatform'
8
9
  import { convertTheme, error, isServer, schemeToTheme } from './utils'
9
10
 
10
- type RemoveNevers<T> = { [K in keyof T as T[K] extends (never | undefined) ? never : K]: T[K] }
11
+ type RemoveNevers<T> = { [K in keyof T as T[K] extends never | undefined ? never : K]: T[K] }
11
12
  type UnistylesSettings = Partial<UnionToIntersection<RemoveNevers<Required<UnistylesConfig>['settings']>>>
12
13
 
13
14
  export class UnistylesState {
@@ -21,9 +22,10 @@ export class UnistylesState {
21
22
  private _config: UnistylesConfig = {}
22
23
 
23
24
  get breakpoint() {
24
- const [currentBreakpoint] = Array.from(this.matchingBreakpoints)
25
- .reverse()
26
- .find(([_key, value]) => value) ?? []
25
+ const [currentBreakpoint] =
26
+ Array.from(this.matchingBreakpoints)
27
+ .reverse()
28
+ .find(([_key, value]) => value) ?? []
27
29
 
28
30
  return currentBreakpoint as AppBreakpoint | undefined
29
31
  }
@@ -72,9 +74,11 @@ export class UnistylesState {
72
74
  this.services.registry.css.addTheme(themeName, theme)
73
75
  this.cssThemes.set(
74
76
  themeName,
75
- Object.fromEntries(Object.entries(theme).map(([key, value]) => {
76
- return convertTheme(key, value)
77
- })) as UnistylesTheme
77
+ Object.fromEntries(
78
+ Object.entries(theme).map(([key, value]) => {
79
+ return convertTheme(key, value)
80
+ }),
81
+ ) as UnistylesTheme,
78
82
  )
79
83
  }
80
84
  })
@@ -84,13 +88,17 @@ export class UnistylesState {
84
88
  this.hasAdaptiveThemes = settings?.adaptiveThemes ?? false
85
89
 
86
90
  if (settings?.initialTheme && settings.adaptiveThemes) {
87
- throw error('You\'re trying to set initial theme and enable adaptiveThemes, but these options are mutually exclusive.')
91
+ throw error(
92
+ "You're trying to set initial theme and enable adaptiveThemes, but these options are mutually exclusive.",
93
+ )
88
94
  }
89
95
 
90
96
  // Adaptive themes
91
97
  if (settings?.adaptiveThemes) {
92
98
  if (!this.themes.get('light') || !this.themes.get('dark')) {
93
- throw error(`You're trying to enable adaptiveThemes, but you didn't register both 'light' and 'dark' themes.`)
99
+ throw error(
100
+ `You're trying to enable adaptiveThemes, but you didn't register both 'light' and 'dark' themes.`,
101
+ )
94
102
  }
95
103
 
96
104
  this.themeName = schemeToTheme(this.services.runtime.colorScheme) as AppThemeName
@@ -99,9 +107,8 @@ export class UnistylesState {
99
107
  }
100
108
 
101
109
  if (settings?.initialTheme) {
102
- const initialTheme = typeof settings.initialTheme === 'function'
103
- ? settings.initialTheme()
104
- : settings.initialTheme
110
+ const initialTheme =
111
+ typeof settings.initialTheme === 'function' ? settings.initialTheme() : settings.initialTheme
105
112
 
106
113
  if (!this.themes.get(initialTheme)) {
107
114
  throw error(`You're trying to select theme "${initialTheme}" but it wasn't registered.`)
@@ -126,11 +133,11 @@ export class UnistylesState {
126
133
  const breakpointsEntries = Object.entries(breakpoints)
127
134
 
128
135
  if (breakpointsEntries.length === 0) {
129
- throw error('StyleSheet.configure\'s breakpoints can\'t be empty.')
136
+ throw error("StyleSheet.configure's breakpoints can't be empty.")
130
137
  }
131
138
 
132
139
  if (breakpointsEntries?.[0]?.[1] !== 0) {
133
- throw error('StyleSheet.configure\'s first breakpoint must start from 0.')
140
+ throw error("StyleSheet.configure's first breakpoint must start from 0.")
134
141
  }
135
142
 
136
143
  breakpointsEntries
@@ -143,7 +150,7 @@ export class UnistylesState {
143
150
  const mediaQuery = window.matchMedia(`(min-width: ${value}px)`)
144
151
  this.matchingBreakpoints.set(breakpoint, mediaQuery.matches)
145
152
 
146
- mediaQuery.addEventListener('change', event => {
153
+ mediaQuery.addEventListener('change', (event) => {
147
154
  this.matchingBreakpoints.set(breakpoint, event.matches)
148
155
  this.services.listener.emitChange(UnistyleDependency.Breakpoints)
149
156
  })
package/src/web/types.ts CHANGED
@@ -6,15 +6,15 @@ import type { UnistylesShadowRegistry } from './shadowRegistry'
6
6
  import type { UnistylesState } from './state'
7
7
 
8
8
  export type UnistylesServices = {
9
- runtime: UnistylesRuntime,
10
- registry: UnistylesRegistry,
11
- shadowRegistry: UnistylesShadowRegistry,
12
- state: UnistylesState,
9
+ runtime: UnistylesRuntime
10
+ registry: UnistylesRegistry
11
+ shadowRegistry: UnistylesShadowRegistry
12
+ state: UnistylesState
13
13
  listener: UnistylesListener
14
14
  }
15
15
 
16
16
  export const UNI_GENERATED_KEYS = ['$$css', 'hash', 'injectedClassName'] as const
17
- export type UniGeneratedKey = typeof UNI_GENERATED_KEYS[number]
17
+ export type UniGeneratedKey = (typeof UNI_GENERATED_KEYS)[number]
18
18
 
19
19
  export type UniGeneratedStyle = Record<UniGeneratedKey, string> & {
20
20
  parsedStyles?: UnistylesValues
@@ -1,7 +1,10 @@
1
1
  export const reduceObject = <TObj extends Record<string, any>, TReducer>(
2
2
  obj: TObj,
3
3
  reducer: (value: TObj[keyof TObj], key: keyof TObj) => TReducer,
4
- ) => Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, reducer(value as TObj[keyof TObj], key)])) as { [K in keyof TObj]: TReducer }
4
+ ) =>
5
+ Object.fromEntries(Object.entries(obj).map(([key, value]) => [key, reducer(value as TObj[keyof TObj], key)])) as {
6
+ [K in keyof TObj]: TReducer
7
+ }
5
8
 
6
9
  export const keyInObject = <T extends Record<string, any>>(obj: T, key: PropertyKey): key is keyof T => key in obj
7
10
 
@@ -14,12 +17,7 @@ export const equal = <T>(a: T, b: T) => {
14
17
  return true
15
18
  }
16
19
 
17
- if (
18
- typeof a !== 'object'
19
- || a === null
20
- || typeof b !== 'object'
21
- || b === null
22
- ) {
20
+ if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) {
23
21
  return false
24
22
  }
25
23
 
@@ -29,7 +27,7 @@ export const equal = <T>(a: T, b: T) => {
29
27
  return false
30
28
  }
31
29
 
32
- return keysA.every(key => Object.is(a[key], b[key]) && Object.prototype.hasOwnProperty.call(b, key))
30
+ return keysA.every((key) => Object.is(a[key], b[key]) && Object.prototype.hasOwnProperty.call(b, key))
33
31
  }
34
32
 
35
33
  export const hyphenate = (propertyName: string) => propertyName.replace(/[A-Z]/g, (m: string) => `-${m.toLowerCase()}`)
@@ -40,7 +38,7 @@ export const serialize = (obj: string | number | object): string => {
40
38
  }
41
39
 
42
40
  const sortedKeys = Object.keys(obj).sort()
43
- const sortedKeyValuePairs = sortedKeys.map(key => `${key}:${serialize(obj[key as keyof typeof obj])}`)
41
+ const sortedKeyValuePairs = sortedKeys.map((key) => `${key}:${serialize(obj[key as keyof typeof obj])}`)
44
42
 
45
43
  return `{${sortedKeyValuePairs.join(',')}}`
46
44
  }
@@ -1,5 +1,7 @@
1
1
  import type React from 'react'
2
+
2
3
  import type { Nullable, UnistylesValues } from '../../types'
4
+
3
5
  import * as unistyles from '../services'
4
6
  import { isServer } from './common'
5
7
 
@@ -7,27 +9,29 @@ type Styles = readonly [
7
9
  {
8
10
  hash: string
9
11
  },
10
- Array<UnistylesValues>
12
+ Array<UnistylesValues>,
11
13
  ]
12
14
 
13
15
  export const createUnistylesRef = <T>(styles?: Styles, forwardedRef?: React.ForwardedRef<T>) => {
14
16
  const storedRef = { current: null as Nullable<T> }
15
17
  const [classNames] = styles ?? []
16
18
 
17
- return isServer() ? undefined : (ref: Nullable<T>) => {
18
- if (!ref) {
19
- unistyles.services.shadowRegistry.remove(storedRef, classNames?.hash)
20
- }
19
+ return isServer()
20
+ ? undefined
21
+ : (ref: Nullable<T>) => {
22
+ if (!ref) {
23
+ unistyles.services.shadowRegistry.remove(storedRef, classNames?.hash)
24
+ }
21
25
 
22
- storedRef.current = ref
23
- unistyles.services.shadowRegistry.add(ref, classNames?.hash)
26
+ storedRef.current = ref
27
+ unistyles.services.shadowRegistry.add(ref, classNames?.hash)
24
28
 
25
- if (typeof forwardedRef === 'function') {
26
- return forwardedRef(ref)
27
- }
29
+ if (typeof forwardedRef === 'function') {
30
+ return forwardedRef(ref)
31
+ }
28
32
 
29
- if (forwardedRef) {
30
- forwardedRef.current = ref
31
- }
32
- }
33
+ if (forwardedRef) {
34
+ forwardedRef.current = ref
35
+ }
36
+ }
33
37
  }