react-native-unistyles 3.0.0-alpha.3 → 3.0.0-alpha.30

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 (541) hide show
  1. package/README.md +7 -0
  2. package/android/CMakeLists.txt +12 -21
  3. package/cxx/common/Constants.h +3 -0
  4. package/cxx/common/Helpers.h +118 -5
  5. package/cxx/core/HostStyle.cpp +12 -8
  6. package/cxx/core/HostStyle.h +4 -0
  7. package/cxx/core/StyleSheet.h +0 -2
  8. package/cxx/core/StyleSheetRegistry.cpp +10 -13
  9. package/cxx/core/StyleSheetRegistry.h +4 -4
  10. package/cxx/core/Unistyle.h +7 -10
  11. package/cxx/core/UnistyleData.h +23 -0
  12. package/cxx/core/UnistyleWrapper.h +61 -12
  13. package/cxx/core/UnistylesCommitHook.cpp +17 -16
  14. package/cxx/core/UnistylesCommitHook.h +7 -11
  15. package/cxx/core/UnistylesCommitShadowNode.h +13 -0
  16. package/cxx/core/UnistylesMountHook.cpp +26 -0
  17. package/cxx/core/UnistylesMountHook.h +24 -0
  18. package/cxx/core/UnistylesRegistry.cpp +85 -88
  19. package/cxx/core/UnistylesRegistry.h +16 -13
  20. package/cxx/core/UnistylesState.cpp +29 -11
  21. package/cxx/core/UnistylesState.h +5 -2
  22. package/cxx/hybridObjects/HybridShadowRegistry.cpp +15 -13
  23. package/cxx/hybridObjects/HybridStyleSheet.cpp +144 -46
  24. package/cxx/hybridObjects/HybridStyleSheet.h +23 -4
  25. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +51 -8
  26. package/cxx/hybridObjects/HybridUnistylesRuntime.h +12 -1
  27. package/cxx/parser/Parser.cpp +209 -176
  28. package/cxx/parser/Parser.h +10 -14
  29. package/cxx/shadowTree/ShadowLeafUpdate.h +1 -1
  30. package/cxx/shadowTree/ShadowTrafficController.h +37 -0
  31. package/cxx/shadowTree/ShadowTreeManager.cpp +16 -15
  32. package/cxx/shadowTree/ShadowTreeManager.h +2 -1
  33. package/ios/Equatable.swift +2 -1
  34. package/ios/NativePlatform+ios.swift +21 -5
  35. package/ios/NativePlatform+keyboard.swift +83 -0
  36. package/ios/NativePlatformListener+ios.swift +36 -23
  37. package/ios/Unistyles.h +1 -0
  38. package/ios/UnistylesModuleOnLoad.h +13 -2
  39. package/ios/UnistylesModuleOnLoad.mm +11 -1
  40. package/lib/commonjs/common.js.map +1 -1
  41. package/lib/commonjs/core/createUnistylesComponent.js +18 -0
  42. package/lib/commonjs/core/createUnistylesComponent.js.map +1 -0
  43. package/lib/commonjs/core/createUnistylesComponent.native.js +45 -0
  44. package/lib/commonjs/core/createUnistylesComponent.native.js.map +2 -0
  45. package/lib/commonjs/core/index.js +27 -0
  46. package/lib/commonjs/core/index.js.map +1 -0
  47. package/lib/commonjs/core/useBreakpoint.js +22 -0
  48. package/lib/commonjs/core/useBreakpoint.js.map +1 -0
  49. package/lib/commonjs/core/useBreakpoint.native.js +24 -0
  50. package/lib/commonjs/core/useBreakpoint.native.js.map +2 -0
  51. package/lib/commonjs/core/useTheme.js +22 -0
  52. package/lib/commonjs/core/useTheme.js.map +2 -0
  53. package/lib/commonjs/core/useTheme.native.js +24 -0
  54. package/lib/commonjs/core/useTheme.native.js.map +2 -0
  55. package/lib/commonjs/global.js +3 -0
  56. package/lib/commonjs/index.js +23 -11
  57. package/lib/commonjs/index.js.map +1 -1
  58. package/lib/commonjs/mq.js +1 -4
  59. package/lib/commonjs/mq.js.map +2 -1
  60. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js +6 -4
  61. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
  62. package/lib/commonjs/specs/NativePlatform/index.js.map +1 -1
  63. package/lib/commonjs/specs/NavigtionBar/index.js +1 -1
  64. package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
  65. package/lib/commonjs/specs/ShadowRegistry/ShadowRegistry.nitro.js.map +1 -1
  66. package/lib/commonjs/specs/ShadowRegistry/index.js +7 -6
  67. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  68. package/lib/commonjs/specs/ShadowRegistry/types.js +3 -0
  69. package/lib/commonjs/specs/StatusBar/UnistylesStatusBar.nitro.js.map +1 -1
  70. package/lib/commonjs/specs/StatusBar/index.js +1 -1
  71. package/lib/commonjs/specs/StatusBar/index.js.map +2 -1
  72. package/lib/commonjs/specs/StyleSheet/UnistylesStyleSheet.nitro.js +2 -4
  73. package/lib/commonjs/specs/StyleSheet/UnistylesStyleSheet.nitro.js.map +1 -1
  74. package/lib/commonjs/specs/StyleSheet/index.js +1 -0
  75. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  76. package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js +1 -3
  77. package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js.map +2 -1
  78. package/lib/commonjs/specs/UnistylesRuntime/index.js +1 -1
  79. package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
  80. package/lib/commonjs/specs/index.js +7 -0
  81. package/lib/commonjs/specs/index.js.map +1 -1
  82. package/lib/commonjs/specs/index.web.js +1 -1
  83. package/lib/commonjs/specs/types.js.map +1 -0
  84. package/lib/commonjs/types/accessibility.js +9 -9
  85. package/lib/commonjs/types/accessibility.js.map +1 -1
  86. package/lib/commonjs/types/common.js +3 -0
  87. package/lib/commonjs/types/core.js.map +1 -1
  88. package/lib/commonjs/types/index.js.map +2 -1
  89. package/lib/commonjs/types/stylesheet.js +1 -2
  90. package/lib/commonjs/types/stylesheet.js.map +1 -1
  91. package/lib/commonjs/web/convert/boxShadow.js +77 -0
  92. package/lib/commonjs/web/convert/boxShadow.js.map +1 -0
  93. package/lib/commonjs/web/convert/index.js +68 -0
  94. package/lib/commonjs/web/convert/index.js.map +2 -0
  95. package/lib/commonjs/web/convert/module.d.js +2 -0
  96. package/lib/commonjs/web/convert/module.d.js.map +1 -0
  97. package/lib/commonjs/web/convert/pseudo.js +10 -0
  98. package/lib/commonjs/web/convert/pseudo.js.map +2 -0
  99. package/lib/commonjs/web/convert/shadow.js +68 -0
  100. package/lib/commonjs/web/convert/shadow.js.map +2 -0
  101. package/lib/commonjs/web/convert/style.js +93 -0
  102. package/lib/commonjs/web/convert/style.js.map +2 -0
  103. package/lib/commonjs/web/convert/textShadow.js +70 -0
  104. package/lib/commonjs/web/convert/textShadow.js.map +2 -0
  105. package/lib/commonjs/web/convert/transform.js +72 -0
  106. package/lib/commonjs/web/convert/transform.js.map +2 -0
  107. package/lib/commonjs/web/convert/types.js +9 -0
  108. package/lib/commonjs/web/convert/types.js.map +1 -0
  109. package/lib/commonjs/web/convert/utils.js +54 -0
  110. package/lib/commonjs/web/convert/utils.js.map +2 -0
  111. package/lib/commonjs/web/create.js +48 -0
  112. package/lib/commonjs/web/create.js.map +1 -0
  113. package/lib/commonjs/web/index.js +60 -0
  114. package/lib/commonjs/web/index.js.map +2 -0
  115. package/lib/commonjs/web/listener.js +35 -0
  116. package/lib/commonjs/web/listener.js.map +2 -0
  117. package/lib/commonjs/web/mock.js +28 -0
  118. package/lib/commonjs/web/mock.js.map +2 -0
  119. package/lib/commonjs/web/mq.js +23 -0
  120. package/lib/commonjs/web/mq.js.map +1 -0
  121. package/lib/commonjs/web/registry.js +183 -0
  122. package/lib/commonjs/web/registry.js.map +2 -0
  123. package/lib/commonjs/web/runtime.js +167 -0
  124. package/lib/commonjs/web/runtime.js.map +2 -0
  125. package/lib/commonjs/web/shadowRegistry.js +114 -0
  126. package/lib/commonjs/web/shadowRegistry.js.map +2 -0
  127. package/lib/commonjs/web/state.js +69 -0
  128. package/lib/commonjs/web/state.js.map +2 -0
  129. package/lib/commonjs/web/utils/common.js +90 -0
  130. package/lib/commonjs/web/utils/common.js.map +2 -0
  131. package/lib/commonjs/web/utils/index.js +28 -0
  132. package/lib/commonjs/web/utils/index.js.map +1 -0
  133. package/lib/commonjs/web/utils/unistyle.js +82 -0
  134. package/lib/commonjs/web/utils/unistyle.js.map +2 -0
  135. package/lib/commonjs/web/variants/getVariants.js +39 -0
  136. package/lib/commonjs/web/variants/getVariants.js.map +1 -0
  137. package/lib/commonjs/web/variants/index.js +28 -0
  138. package/lib/commonjs/web/variants/index.js.map +1 -0
  139. package/lib/commonjs/web/variants/useVariants.js +58 -0
  140. package/lib/commonjs/web/variants/useVariants.js.map +2 -0
  141. package/lib/module/core/createUnistylesComponent.js +11 -0
  142. package/lib/module/core/createUnistylesComponent.js.map +2 -0
  143. package/lib/module/core/createUnistylesComponent.native.js +39 -0
  144. package/lib/module/core/createUnistylesComponent.native.js.map +1 -0
  145. package/lib/module/core/index.js +6 -0
  146. package/lib/module/core/index.js.map +1 -0
  147. package/lib/module/core/useBreakpoint.js +17 -0
  148. package/lib/module/core/useBreakpoint.js.map +1 -0
  149. package/lib/module/core/useBreakpoint.native.js +19 -0
  150. package/lib/module/core/useBreakpoint.native.js.map +2 -0
  151. package/lib/module/core/useTheme.js +17 -0
  152. package/lib/module/core/useTheme.js.map +2 -0
  153. package/lib/module/core/useTheme.native.js +19 -0
  154. package/lib/module/core/useTheme.native.js.map +2 -0
  155. package/lib/module/global.js +1 -1
  156. package/lib/module/global.js.map +1 -0
  157. package/lib/module/index.js +1 -9
  158. package/lib/module/index.js.map +1 -1
  159. package/lib/module/mq.js +1 -4
  160. package/lib/module/mq.js.map +2 -1
  161. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js +1 -0
  162. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js.map +2 -1
  163. package/lib/module/specs/NativePlatform/index.js.map +1 -1
  164. package/lib/module/specs/NavigtionBar/UnistylesNavigationBar.nitro.js.map +1 -1
  165. package/lib/module/specs/NavigtionBar/index.js +1 -1
  166. package/lib/module/specs/NavigtionBar/index.js.map +2 -1
  167. package/lib/module/specs/ShadowRegistry/ShadowRegistry.nitro.js.map +1 -1
  168. package/lib/module/specs/ShadowRegistry/index.js +7 -6
  169. package/lib/module/specs/ShadowRegistry/index.js.map +2 -1
  170. package/lib/module/specs/ShadowRegistry/types.js +2 -0
  171. package/lib/module/specs/ShadowRegistry/types.js.map +1 -0
  172. package/lib/module/specs/StatusBar/UnistylesStatusBar.nitro.js.map +1 -1
  173. package/lib/module/specs/StatusBar/index.js +1 -1
  174. package/lib/module/specs/StatusBar/index.js.map +1 -1
  175. package/lib/module/specs/StyleSheet/index.js +1 -0
  176. package/lib/module/specs/StyleSheet/index.js.map +2 -1
  177. package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js.map +2 -1
  178. package/lib/module/specs/UnistylesRuntime/UnistylesRuntime.nitro.js.map +1 -0
  179. package/lib/module/specs/UnistylesRuntime/index.js +1 -1
  180. package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
  181. package/lib/module/specs/index.js +2 -1
  182. package/lib/module/specs/index.js.map +1 -1
  183. package/lib/module/specs/index.web.js +1 -1
  184. package/lib/module/specs/index.web.js.map +2 -1
  185. package/lib/module/specs/types.js +10 -10
  186. package/lib/module/specs/types.js.map +1 -1
  187. package/lib/module/types/accessibility.js +1 -1
  188. package/lib/module/types/accessibility.js.map +1 -0
  189. package/lib/module/types/breakpoints.js.map +1 -0
  190. package/lib/module/types/common.js +1 -1
  191. package/lib/module/types/common.js.map +1 -0
  192. package/lib/module/types/core.js.map +1 -1
  193. package/lib/module/types/index.js.map +2 -1
  194. package/lib/module/types/stylesheet.js.map +1 -1
  195. package/lib/module/types/variants.js.map +1 -0
  196. package/lib/module/web/convert/boxShadow.js +72 -0
  197. package/lib/module/web/convert/boxShadow.js.map +1 -0
  198. package/lib/module/web/convert/index.js +69 -0
  199. package/lib/module/web/convert/index.js.map +2 -0
  200. package/lib/module/web/convert/module.d.js +2 -0
  201. package/lib/module/web/convert/module.d.js.map +1 -0
  202. package/lib/module/web/convert/pseudo.js +5 -0
  203. package/lib/module/web/convert/pseudo.js.map +2 -0
  204. package/lib/module/web/convert/shadow.js +59 -0
  205. package/lib/module/web/convert/shadow.js.map +1 -0
  206. package/lib/module/web/convert/style.js +88 -0
  207. package/lib/module/web/convert/style.js.map +1 -0
  208. package/lib/module/web/convert/textShadow.js +68 -0
  209. package/lib/module/web/convert/textShadow.js.map +1 -0
  210. package/lib/module/web/convert/transform.js +67 -0
  211. package/lib/module/web/convert/transform.js.map +1 -0
  212. package/lib/module/web/convert/types.js +5 -0
  213. package/lib/module/web/convert/types.js.map +1 -0
  214. package/lib/module/web/convert/utils.js +42 -0
  215. package/lib/module/web/convert/utils.js.map +1 -0
  216. package/lib/module/web/create.js +43 -0
  217. package/lib/module/web/create.js.map +1 -0
  218. package/lib/module/web/index.js +25 -0
  219. package/lib/module/web/index.js.map +2 -0
  220. package/lib/module/web/listener.js +31 -0
  221. package/lib/module/web/listener.js.map +2 -0
  222. package/lib/module/web/mock.js +24 -0
  223. package/lib/module/web/mock.js.map +2 -0
  224. package/lib/module/web/mq.js +17 -0
  225. package/lib/module/web/mq.js.map +1 -0
  226. package/lib/module/web/registry.js +181 -0
  227. package/lib/module/web/registry.js.map +1 -0
  228. package/lib/module/web/runtime.js +163 -0
  229. package/lib/module/web/runtime.js.map +1 -0
  230. package/lib/module/web/shadowRegistry.js +118 -0
  231. package/lib/module/web/shadowRegistry.js.map +1 -0
  232. package/lib/module/web/state.js +65 -0
  233. package/lib/module/web/state.js.map +2 -0
  234. package/lib/module/web/utils/common.js +80 -0
  235. package/lib/module/web/utils/common.js.map +1 -0
  236. package/lib/module/web/utils/index.js +5 -0
  237. package/lib/module/web/utils/index.js.map +1 -0
  238. package/lib/module/web/utils/unistyle.js +69 -0
  239. package/lib/module/web/utils/unistyle.js.map +1 -0
  240. package/lib/module/web/variants/getVariants.js +34 -0
  241. package/lib/module/web/variants/getVariants.js.map +2 -0
  242. package/lib/module/web/variants/index.js +5 -0
  243. package/lib/module/web/variants/index.js.map +1 -0
  244. package/lib/module/web/variants/useVariants.js +53 -0
  245. package/lib/module/web/variants/useVariants.js.map +2 -0
  246. package/lib/typescript/src/core/createUnistylesComponent.d.ts +6 -0
  247. package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +1 -0
  248. package/lib/typescript/src/core/createUnistylesComponent.native.d.ts +6 -0
  249. package/lib/typescript/src/core/createUnistylesComponent.native.d.ts.map +1 -0
  250. package/lib/typescript/src/core/index.d.ts +4 -0
  251. package/lib/typescript/src/core/index.d.ts.map +1 -0
  252. package/lib/typescript/src/core/useBreakpoint.d.ts +2 -0
  253. package/lib/typescript/src/core/useBreakpoint.d.ts.map +1 -0
  254. package/lib/typescript/src/core/useBreakpoint.native.d.ts +2 -0
  255. package/lib/typescript/src/core/useBreakpoint.native.d.ts.map +1 -0
  256. package/lib/typescript/src/core/useTheme.d.ts +3 -0
  257. package/lib/typescript/src/core/useTheme.d.ts.map +1 -0
  258. package/lib/typescript/src/core/useTheme.native.d.ts +3 -0
  259. package/lib/typescript/src/core/useTheme.native.d.ts.map +1 -0
  260. package/lib/typescript/src/index.d.ts +2 -0
  261. package/lib/typescript/src/index.d.ts.map +1 -1
  262. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts +6 -2
  263. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
  264. package/lib/typescript/src/specs/NavigtionBar/index.d.ts +5 -0
  265. package/lib/typescript/src/specs/NavigtionBar/index.d.ts.map +1 -1
  266. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +3 -3
  267. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  268. package/lib/typescript/src/specs/StatusBar/index.d.ts +5 -0
  269. package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
  270. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts +3 -1
  271. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts.map +1 -1
  272. package/lib/typescript/src/specs/StyleSheet/index.d.ts +3 -1
  273. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  274. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts +0 -1
  275. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
  276. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +3 -1
  277. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
  278. package/lib/typescript/src/specs/index.d.ts +4 -2
  279. package/lib/typescript/src/specs/index.d.ts.map +1 -1
  280. package/lib/typescript/src/specs/index.web.d.ts +1 -1
  281. package/lib/typescript/src/specs/index.web.d.ts.map +1 -1
  282. package/lib/typescript/src/types/breakpoints.d.ts +11 -11
  283. package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
  284. package/lib/typescript/src/types/index.d.ts +1 -1
  285. package/lib/typescript/src/types/index.d.ts.map +1 -1
  286. package/lib/typescript/src/types/stylesheet.d.ts +6 -4
  287. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
  288. package/lib/typescript/src/types/variants.d.ts +4 -1
  289. package/lib/typescript/src/types/variants.d.ts.map +1 -1
  290. package/lib/typescript/src/web/convert/boxShadow.d.ts +8 -0
  291. package/lib/typescript/src/web/convert/boxShadow.d.ts.map +1 -0
  292. package/lib/typescript/src/web/convert/index.d.ts +3 -0
  293. package/lib/typescript/src/web/convert/index.d.ts.map +1 -0
  294. package/lib/typescript/src/web/convert/pseudo.d.ts +6 -0
  295. package/lib/typescript/src/web/convert/pseudo.d.ts.map +1 -0
  296. package/lib/typescript/src/web/convert/shadow.d.ts.map +1 -0
  297. package/lib/typescript/src/web/convert/style.d.ts +2 -0
  298. package/lib/typescript/src/web/convert/style.d.ts.map +1 -0
  299. package/lib/typescript/src/web/convert/textShadow.d.ts +8 -0
  300. package/lib/typescript/src/web/convert/textShadow.d.ts.map +1 -0
  301. package/lib/typescript/src/web/convert/transform.d.ts +4 -0
  302. package/lib/typescript/src/web/convert/transform.d.ts.map +1 -0
  303. package/lib/typescript/{web → src/web}/convert/types.d.ts +1 -1
  304. package/lib/typescript/src/web/convert/types.d.ts.map +1 -0
  305. package/lib/typescript/src/web/convert/utils.d.ts.map +1 -0
  306. package/lib/typescript/src/web/create.d.ts +1443 -0
  307. package/lib/typescript/{web → src/web}/create.d.ts.map +1 -1
  308. package/lib/typescript/src/web/index.d.ts +1459 -0
  309. package/lib/typescript/{web → src/web}/index.d.ts.map +1 -1
  310. package/lib/typescript/{web/listener → src/web}/listener.d.ts +3 -2
  311. package/lib/typescript/src/web/listener.d.ts.map +1 -0
  312. package/lib/typescript/src/web/mock.d.ts +5 -0
  313. package/lib/typescript/src/web/mock.d.ts.map +1 -0
  314. package/lib/typescript/src/web/mq.d.ts +8 -0
  315. package/lib/typescript/src/web/mq.d.ts.map +1 -0
  316. package/lib/typescript/src/web/registry.d.ts +28 -0
  317. package/lib/typescript/src/web/registry.d.ts.map +1 -0
  318. package/lib/typescript/{web → src/web}/runtime.d.ts +9 -9
  319. package/lib/typescript/src/web/runtime.d.ts.map +1 -0
  320. package/lib/typescript/src/web/shadowRegistry.d.ts +16 -0
  321. package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -0
  322. package/lib/typescript/src/web/state.d.ts +18 -0
  323. package/lib/typescript/src/web/state.d.ts.map +1 -0
  324. package/lib/typescript/{web/utils.d.ts → src/web/utils/common.d.ts} +8 -9
  325. package/lib/typescript/src/web/utils/common.d.ts.map +1 -0
  326. package/lib/typescript/src/web/utils/index.d.ts +3 -0
  327. package/lib/typescript/src/web/utils/index.d.ts.map +1 -0
  328. package/lib/typescript/src/web/utils/unistyle.d.ts +20 -0
  329. package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -0
  330. package/lib/typescript/src/web/variants/getVariants.d.ts +3 -0
  331. package/lib/typescript/src/web/variants/getVariants.d.ts.map +1 -0
  332. package/lib/typescript/src/web/variants/index.d.ts +3 -0
  333. package/lib/typescript/src/web/variants/index.d.ts.map +1 -0
  334. package/lib/typescript/src/web/variants/useVariants.d.ts +3 -0
  335. package/lib/typescript/src/web/variants/useVariants.d.ts.map +1 -0
  336. package/nitrogen/generated/android/c++/JColorScheme.hpp +1 -1
  337. package/nitrogen/generated/android/c++/JFunc_void.hpp +48 -0
  338. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency_.hpp +8 -8
  339. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +31 -22
  340. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +8 -3
  341. package/nitrogen/generated/android/c++/JOrientation.hpp +1 -1
  342. package/nitrogen/generated/android/c++/JUnistyleDependency.hpp +4 -1
  343. package/nitrogen/generated/android/c++/JUnistylesNativeMiniRuntime.hpp +9 -7
  344. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void.kt +45 -0
  345. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +25 -5
  346. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistyleDependency.kt +2 -1
  347. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +2 -1
  348. package/nitrogen/generated/android/unistyles+autolinking.cmake +13 -1
  349. package/nitrogen/generated/android/{UnistylesOnLoad.cpp → unistylesOnLoad.cpp} +4 -2
  350. package/nitrogen/generated/android/{UnistylesOnLoad.hpp → unistylesOnLoad.hpp} +1 -1
  351. package/nitrogen/generated/ios/Unistyles+autolinking.rb +5 -3
  352. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +25 -0
  353. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +53 -31
  354. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +0 -29
  355. package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +7 -1
  356. package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +3 -13
  357. package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +167 -104
  358. package/nitrogen/generated/ios/swift/UnistyleDependency.swift +4 -0
  359. package/nitrogen/generated/ios/swift/UnistylesNativeMiniRuntime.swift +16 -5
  360. package/nitrogen/generated/shared/c++/ColorScheme.hpp +2 -2
  361. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.cpp +2 -0
  362. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +5 -0
  363. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +3 -0
  364. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +3 -0
  365. package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +3 -0
  366. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +3 -0
  367. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.cpp +2 -1
  368. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +10 -4
  369. package/nitrogen/generated/shared/c++/Orientation.hpp +2 -2
  370. package/nitrogen/generated/shared/c++/UnistyleDependency.hpp +2 -1
  371. package/nitrogen/generated/shared/c++/UnistylesCxxMiniRuntime.hpp +10 -9
  372. package/nitrogen/generated/shared/c++/UnistylesNativeMiniRuntime.hpp +9 -8
  373. package/package.json +18 -30
  374. package/plugin/common.js +12 -1
  375. package/plugin/index.js +110 -23
  376. package/plugin/ref.js +64 -13
  377. package/plugin/style.js +82 -22
  378. package/plugin/stylesheet.js +53 -3
  379. package/plugin/variants.js +33 -0
  380. package/src/common.js +4 -0
  381. package/src/core/createUnistylesComponent.js +6 -0
  382. package/src/core/createUnistylesComponent.native.js +31 -0
  383. package/src/core/createUnistylesComponent.native.tsx +44 -0
  384. package/src/core/createUnistylesComponent.tsx +10 -0
  385. package/src/core/index.js +3 -0
  386. package/src/core/index.ts +3 -0
  387. package/src/core/useBreakpoint.js +14 -0
  388. package/src/core/useBreakpoint.native.js +16 -0
  389. package/src/core/useBreakpoint.native.ts +21 -0
  390. package/src/core/useBreakpoint.ts +18 -0
  391. package/src/core/useTheme.js +14 -0
  392. package/src/core/useTheme.native.js +16 -0
  393. package/src/core/useTheme.native.ts +22 -0
  394. package/src/core/useTheme.ts +19 -0
  395. package/src/global.js +1 -0
  396. package/src/index.js +3 -0
  397. package/src/index.ts +2 -12
  398. package/src/mq.js +38 -0
  399. package/src/specs/NativePlatform/NativePlatform.nitro.js +19 -0
  400. package/src/specs/NativePlatform/NativePlatform.nitro.ts +7 -3
  401. package/src/specs/NativePlatform/index.js +1 -0
  402. package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.js +1 -0
  403. package/src/specs/NavigtionBar/index.js +9 -0
  404. package/src/specs/NavigtionBar/index.ts +6 -1
  405. package/src/specs/ShadowRegistry/ShadowRegistry.nitro.js +1 -0
  406. package/src/specs/ShadowRegistry/index.js +26 -0
  407. package/src/specs/ShadowRegistry/index.ts +10 -9
  408. package/src/specs/ShadowRegistry/types.js +1 -0
  409. package/src/specs/StatusBar/UnistylesStatusBar.nitro.js +1 -0
  410. package/src/specs/StatusBar/index.js +25 -0
  411. package/src/specs/StatusBar/index.ts +6 -1
  412. package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.js +1 -0
  413. package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.ts +4 -1
  414. package/src/specs/StyleSheet/index.js +13 -0
  415. package/src/specs/StyleSheet/index.ts +6 -1
  416. package/src/specs/TurboUnistyles/NativeTurboUnistyles.js +2 -0
  417. package/src/specs/TurboUnistyles/index.js +1 -0
  418. package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.js +1 -0
  419. package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +0 -1
  420. package/src/specs/UnistylesRuntime/index.js +20 -0
  421. package/src/specs/UnistylesRuntime/index.ts +4 -2
  422. package/src/specs/index.js +8 -0
  423. package/src/specs/index.ts +6 -2
  424. package/src/specs/index.web.js +2 -0
  425. package/src/specs/index.web.ts +1 -1
  426. package/src/specs/types.js +17 -0
  427. package/src/types/accessibility.js +30 -0
  428. package/src/types/breakpoints.js +1 -0
  429. package/src/types/breakpoints.ts +25 -13
  430. package/src/types/common.js +1 -0
  431. package/src/types/core.js +1 -0
  432. package/src/types/index.js +1 -0
  433. package/src/types/index.ts +1 -1
  434. package/src/types/stylesheet.js +2 -0
  435. package/src/types/stylesheet.ts +7 -5
  436. package/src/types/variants.js +1 -0
  437. package/src/types/variants.ts +7 -1
  438. package/src/web/convert/boxShadow.js +59 -0
  439. package/{web → src/web}/convert/boxShadow.ts +14 -15
  440. package/src/web/convert/index.js +56 -0
  441. package/{web → src/web}/convert/index.ts +8 -15
  442. package/src/web/convert/pseudo.js +131 -0
  443. package/src/web/convert/pseudo.ts +137 -0
  444. package/src/web/convert/shadow.js +50 -0
  445. package/src/web/convert/style.js +137 -0
  446. package/{web → src/web}/convert/style.ts +61 -10
  447. package/src/web/convert/textShadow.js +56 -0
  448. package/{web → src/web}/convert/textShadow.ts +13 -14
  449. package/src/web/convert/transform.js +65 -0
  450. package/{web → src/web}/convert/transform.ts +7 -8
  451. package/src/web/convert/types.js +2 -0
  452. package/{web → src/web}/convert/types.ts +1 -1
  453. package/src/web/convert/utils.js +39 -0
  454. package/src/web/create.js +36 -0
  455. package/src/web/create.ts +47 -0
  456. package/src/web/index.js +22 -0
  457. package/{web → src/web}/index.ts +3 -2
  458. package/src/web/listener.js +26 -0
  459. package/{web/listener → src/web}/listener.ts +3 -3
  460. package/src/web/mock.js +21 -0
  461. package/{web → src/web}/mock.ts +2 -12
  462. package/src/web/mq.js +14 -0
  463. package/{web → src/web}/mq.ts +1 -3
  464. package/src/web/registry.js +165 -0
  465. package/src/web/registry.ts +236 -0
  466. package/src/web/runtime.js +160 -0
  467. package/{web → src/web}/runtime.ts +21 -18
  468. package/src/web/shadowRegistry.js +96 -0
  469. package/src/web/shadowRegistry.ts +121 -0
  470. package/src/web/state.js +68 -0
  471. package/src/web/state.ts +94 -0
  472. package/src/web/utils/common.js +79 -0
  473. package/{web/utils.ts → src/web/utils/common.ts} +48 -36
  474. package/src/web/utils/index.js +2 -0
  475. package/src/web/utils/index.ts +2 -0
  476. package/src/web/utils/unistyle.js +72 -0
  477. package/src/web/utils/unistyle.ts +104 -0
  478. package/src/web/variants/getVariants.js +26 -0
  479. package/src/web/variants/getVariants.ts +42 -0
  480. package/src/web/variants/index.js +2 -0
  481. package/src/web/variants/index.ts +2 -0
  482. package/src/web/variants/useVariants.js +50 -0
  483. package/src/web/variants/useVariants.ts +65 -0
  484. package/lib/typescript/example/App.d.ts +0 -4
  485. package/lib/typescript/example/App.d.ts.map +0 -1
  486. package/lib/typescript/example/unistyles.d.ts +0 -63
  487. package/lib/typescript/example/unistyles.d.ts.map +0 -1
  488. package/lib/typescript/expo-example/App.d.ts +0 -4
  489. package/lib/typescript/expo-example/App.d.ts.map +0 -1
  490. package/lib/typescript/expo-example/unistyles.d.ts +0 -63
  491. package/lib/typescript/expo-example/unistyles.d.ts.map +0 -1
  492. package/lib/typescript/web/convert/boxShadow.d.ts +0 -3
  493. package/lib/typescript/web/convert/boxShadow.d.ts.map +0 -1
  494. package/lib/typescript/web/convert/breakpoint.d.ts +0 -3
  495. package/lib/typescript/web/convert/breakpoint.d.ts.map +0 -1
  496. package/lib/typescript/web/convert/index.d.ts +0 -4
  497. package/lib/typescript/web/convert/index.d.ts.map +0 -1
  498. package/lib/typescript/web/convert/shadow.d.ts.map +0 -1
  499. package/lib/typescript/web/convert/style.d.ts +0 -3
  500. package/lib/typescript/web/convert/style.d.ts.map +0 -1
  501. package/lib/typescript/web/convert/textShadow.d.ts +0 -3
  502. package/lib/typescript/web/convert/textShadow.d.ts.map +0 -1
  503. package/lib/typescript/web/convert/transform.d.ts +0 -5
  504. package/lib/typescript/web/convert/transform.d.ts.map +0 -1
  505. package/lib/typescript/web/convert/types.d.ts.map +0 -1
  506. package/lib/typescript/web/convert/utils.d.ts.map +0 -1
  507. package/lib/typescript/web/create.d.ts +0 -2449
  508. package/lib/typescript/web/index.d.ts +0 -2464
  509. package/lib/typescript/web/listener/index.d.ts +0 -2
  510. package/lib/typescript/web/listener/index.d.ts.map +0 -1
  511. package/lib/typescript/web/listener/listener.d.ts.map +0 -1
  512. package/lib/typescript/web/mock.d.ts +0 -14
  513. package/lib/typescript/web/mock.d.ts.map +0 -1
  514. package/lib/typescript/web/mq.d.ts +0 -4
  515. package/lib/typescript/web/mq.d.ts.map +0 -1
  516. package/lib/typescript/web/pseudo.d.ts +0 -4
  517. package/lib/typescript/web/pseudo.d.ts.map +0 -1
  518. package/lib/typescript/web/registry.d.ts +0 -12
  519. package/lib/typescript/web/registry.d.ts.map +0 -1
  520. package/lib/typescript/web/runtime.d.ts.map +0 -1
  521. package/lib/typescript/web/state.d.ts +0 -24
  522. package/lib/typescript/web/state.d.ts.map +0 -1
  523. package/lib/typescript/web/useVariants.d.ts +0 -3
  524. package/lib/typescript/web/useVariants.d.ts.map +0 -1
  525. package/lib/typescript/web/utils.d.ts.map +0 -1
  526. package/plugin/__tests__/dependencies.spec.js +0 -360
  527. package/plugin/__tests__/ref.spec.js +0 -991
  528. package/plugin/__tests__/stylesheet.spec.js +0 -396
  529. package/web/convert/breakpoint.ts +0 -21
  530. package/web/create.ts +0 -102
  531. package/web/listener/index.ts +0 -1
  532. package/web/pseudo.ts +0 -11
  533. package/web/registry.ts +0 -41
  534. package/web/state.ts +0 -148
  535. package/web/useVariants.ts +0 -99
  536. /package/lib/typescript/{web → src/web}/convert/shadow.d.ts +0 -0
  537. /package/lib/typescript/{web → src/web}/convert/utils.d.ts +0 -0
  538. /package/nitrogen/generated/android/{UnistylesOnLoad.kt → unistylesOnLoad.kt} +0 -0
  539. /package/{web → src/web}/convert/module.d.ts +0 -0
  540. /package/{web → src/web}/convert/shadow.ts +0 -0
  541. /package/{web → src/web}/convert/utils.ts +0 -0
@@ -8,6 +8,6 @@ namespace margelo::nitro::unistyles::shadow {
8
8
  using namespace facebook;
9
9
  using namespace facebook::react;
10
10
 
11
- using ShadowLeafUpdates = std::unordered_map<const ShadowNodeFamily*, std::vector<RawProps>>;
11
+ using ShadowLeafUpdates = std::unordered_map<const ShadowNodeFamily*, RawProps>;
12
12
 
13
13
  }
@@ -0,0 +1,37 @@
1
+ #pragma once
2
+
3
+ #import "ShadowLeafUpdate.h"
4
+
5
+ namespace margelo::nitro::unistyles::shadow {
6
+
7
+ // Like a traffic officer managing a jam, this struct ensures everything
8
+ // is synchronized within a set timeframe, controlling flow and preventing chaos.
9
+ struct ShadowTrafficController {
10
+ inline bool hasUnistylesCommit() {
11
+ return _hasCommit;
12
+ }
13
+
14
+ inline void setHasUnistylesCommit(bool hasCommit) {
15
+ this->_hasCommit = hasCommit;
16
+ }
17
+
18
+ inline bool shouldStop() {
19
+ return !_canCommit;
20
+ }
21
+
22
+ inline void stopUnistylesTraffic() {
23
+ this->_canCommit = false;
24
+ }
25
+
26
+ inline void resumeUnistylesTraffic() {
27
+ this->_canCommit = true;
28
+ }
29
+
30
+ std::unordered_map<jsi::Runtime*, shadow::ShadowLeafUpdates> _unistylesUpdates{};
31
+
32
+ private:
33
+ bool _hasCommit = false;
34
+ bool _canCommit = false;
35
+ };
36
+
37
+ }
@@ -9,23 +9,29 @@ using AffectedNodes = std::unordered_map<const ShadowNodeFamily*, std::unordered
9
9
  void shadow::ShadowTreeManager::updateShadowTree(facebook::jsi::Runtime& rt, shadow::ShadowLeafUpdates& updates) {
10
10
  auto& uiManager = UIManagerBinding::getBinding(rt)->getUIManager();
11
11
  const auto &shadowTreeRegistry = uiManager.getShadowTreeRegistry();
12
+ auto& registry = core::UnistylesRegistry::get();
12
13
 
13
- shadowTreeRegistry.enumerate([&updates, &rt](const ShadowTree& shadowTree, bool& stop){
14
+ if (registry.trafficController.shouldStop()) {
15
+ registry.trafficController.setHasUnistylesCommit(true);
16
+
17
+ return;
18
+ }
19
+
20
+ shadowTreeRegistry.enumerate([&updates](const ShadowTree& shadowTree, bool& stop){
14
21
  // we could iterate via updates and create multiple commits
15
22
  // but it can cause performance issues for hundreds of nodes
16
23
  // so let's mutate Shadow Tree in single transaction
17
24
  auto transaction = [&](const RootShadowNode& oldRootShadowNode) {
18
25
  auto affectedNodes = shadow::ShadowTreeManager::findAffectedNodes(oldRootShadowNode, updates);
19
26
  auto newRootNode = std::static_pointer_cast<RootShadowNode>(shadow::ShadowTreeManager::cloneShadowTree(
20
- rt,
21
27
  oldRootShadowNode,
22
28
  updates,
23
29
  affectedNodes
24
30
  ));
25
-
31
+
26
32
  // set unistyles commit trait
27
33
  auto unistylesRootNode = std::reinterpret_pointer_cast<core::UnistylesCommitShadowNode>(newRootNode);
28
-
34
+
29
35
  unistylesRootNode->addUnistylesCommitTrait();
30
36
 
31
37
  return newRootNode;
@@ -36,7 +42,7 @@ void shadow::ShadowTreeManager::updateShadowTree(facebook::jsi::Runtime& rt, sha
36
42
  // enableStateReconciliation: https://reactnative.dev/architecture/render-pipeline#react-native-renderer-state-updates
37
43
  // mountSynchronously: must be true as this is update from C++ not React
38
44
  shadowTree.commit(transaction, {false, true});
39
-
45
+
40
46
 
41
47
  // for now we're assuming single surface, can be improved in the future
42
48
  // stop = true means stop enumerating next shadow tree
@@ -83,7 +89,7 @@ AffectedNodes shadow::ShadowTreeManager::findAffectedNodes(const RootShadowNode&
83
89
 
84
90
  // based on Reanimated algorithm
85
91
  // clone affected nodes recursively, inject props and commit tree
86
- ShadowNode::Unshared shadow::ShadowTreeManager::cloneShadowTree(jsi::Runtime& rt, const ShadowNode &shadowNode, ShadowLeafUpdates& updates, AffectedNodes& affectedNodes) {
92
+ ShadowNode::Unshared shadow::ShadowTreeManager::cloneShadowTree(const ShadowNode &shadowNode, ShadowLeafUpdates& updates, AffectedNodes& affectedNodes) {
87
93
  const auto family = &shadowNode.getFamily();
88
94
  const auto rawPropsIt = updates.find(family);
89
95
  const auto childrenIt = affectedNodes.find(family);
@@ -93,7 +99,7 @@ ShadowNode::Unshared shadow::ShadowTreeManager::cloneShadowTree(jsi::Runtime& rt
93
99
  if (childrenIt != affectedNodes.end()) {
94
100
  // get all indexes of children and clone it recursively
95
101
  for (const auto index : childrenIt->second) {
96
- children[index] = cloneShadowTree(rt, *children[index], updates, affectedNodes);
102
+ children[index] = cloneShadowTree(*children[index], updates, affectedNodes);
97
103
  }
98
104
  }
99
105
 
@@ -106,14 +112,9 @@ ShadowNode::Unshared shadow::ShadowTreeManager::cloneShadowTree(jsi::Runtime& rt
106
112
  *shadowNode.getContextContainer()
107
113
  };
108
114
 
109
- updatedProps = shadowNode.getProps();
110
-
111
- // we may have multiple Unistyles for single node, so we must apply them all
112
- for (const auto& props: rawPropsIt->second) {
113
- updatedProps = shadowNode
114
- .getComponentDescriptor()
115
- .cloneProps(propsParserContext, updatedProps, RawProps(props));
116
- }
115
+ updatedProps = shadowNode
116
+ .getComponentDescriptor()
117
+ .cloneProps(propsParserContext, shadowNode.getProps(), RawProps(rawPropsIt->second));
117
118
  }
118
119
 
119
120
  return shadowNode.clone({
@@ -6,6 +6,7 @@
6
6
  #include <ranges>
7
7
  #include "ShadowLeafUpdate.h"
8
8
  #include "UnistylesCommitShadowNode.h"
9
+ #include "UnistylesRegistry.h"
9
10
 
10
11
  namespace margelo::nitro::unistyles::shadow {
11
12
 
@@ -17,7 +18,7 @@ using AffectedNodes = std::unordered_map<const ShadowNodeFamily *, std::unordere
17
18
  struct ShadowTreeManager {
18
19
  static void updateShadowTree(jsi::Runtime& rt, shadow::ShadowLeafUpdates& updates);
19
20
  static AffectedNodes findAffectedNodes(const RootShadowNode& rootNode, ShadowLeafUpdates& updates);
20
- static ShadowNode::Unshared cloneShadowTree(jsi::Runtime& rt, const ShadowNode &shadowNode, ShadowLeafUpdates& updates, AffectedNodes& affectedNodes);
21
+ static ShadowNode::Unshared cloneShadowTree(const ShadowNode &shadowNode, ShadowLeafUpdates& updates, AffectedNodes& affectedNodes);
21
22
  };
22
23
 
23
24
  }
@@ -36,7 +36,8 @@ extension UnistylesNativeMiniRuntime {
36
36
  dependencies.append(UnistyleDependency.breakpoints)
37
37
  }
38
38
 
39
- if (lhs.orientation != rhs.orientation) {
39
+ // no need to check isLandscape, as it's always opposite
40
+ if (lhs.isPortrait != rhs.isPortrait) {
40
41
  dependencies.append(UnistyleDependency.orientation)
41
42
  }
42
43
 
@@ -1,14 +1,19 @@
1
1
  #if os(iOS)
2
2
 
3
3
  import Foundation
4
+ import Combine
4
5
  import NitroModules
5
6
 
6
- typealias CxxListener = (Array<UnistyleDependency>) -> Void
7
+ typealias CxxDependencyListener = (Array<UnistyleDependency>) -> Void
8
+ typealias CxxImeListener = () -> Void
7
9
 
8
10
  class NativeIOSPlatform: HybridNativePlatformSpec {
9
11
  var miniRuntime: UnistylesNativeMiniRuntime?
12
+ var keyboardAnimation = KeyboardAnimation()
13
+ var cancellables = Set<AnyCancellable>()
10
14
 
11
- var listeners: Array<CxxListener> = []
15
+ var dependencyListeners: Array<CxxDependencyListener> = []
16
+ var imeListeners: Array<CxxImeListener> = []
12
17
  var hybridContext = margelo.nitro.HybridContext()
13
18
  var memorySize: Int {
14
19
  return getSizeOf(self)
@@ -18,10 +23,12 @@ class NativeIOSPlatform: HybridNativePlatformSpec {
18
23
  self.miniRuntime = self.buildMiniRuntime()
19
24
 
20
25
  setupPlatformListeners()
26
+ setupKeyboardListeners()
21
27
  }
22
28
 
23
29
  deinit {
24
30
  removePlatformListeners()
31
+ removeKeyboardListeners()
25
32
  }
26
33
 
27
34
  func getMiniRuntime() -> UnistylesNativeMiniRuntime {
@@ -29,6 +36,8 @@ class NativeIOSPlatform: HybridNativePlatformSpec {
29
36
  }
30
37
 
31
38
  func buildMiniRuntime() -> UnistylesNativeMiniRuntime {
39
+ let orientation = self.getOrientation()
40
+
32
41
  return UnistylesNativeMiniRuntime(
33
42
  colorScheme: self.getColorScheme(),
34
43
  screen: self.getScreenDimensions(),
@@ -39,7 +48,8 @@ class NativeIOSPlatform: HybridNativePlatformSpec {
39
48
  rtl: self.getPrefersRtlDirection(),
40
49
  statusBar: self.getStatusBarDimensions(),
41
50
  navigationBar: self.getNavigationBarDimensions(),
42
- orientation: self.getOrientation()
51
+ isPortrait: orientation == .portrait,
52
+ isLandscape: orientation == .landscape
43
53
  )
44
54
  }
45
55
 
@@ -188,7 +198,13 @@ class NativeIOSPlatform: HybridNativePlatformSpec {
188
198
 
189
199
  let safeArea = window.safeAreaInsets
190
200
 
191
- return Insets(top: safeArea.top, bottom: safeArea.bottom, left: safeArea.left, right: safeArea.right, ime: 0)
201
+ return Insets(
202
+ top: safeArea.top,
203
+ bottom: safeArea.bottom,
204
+ left: safeArea.left,
205
+ right: safeArea.right,
206
+ ime: keyboardAnimation.animatedImeInset
207
+ )
192
208
  }
193
209
 
194
210
  if Thread.isMainThread {
@@ -274,7 +290,7 @@ class NativeIOSPlatform: HybridNativePlatformSpec {
274
290
  func getNavigationBarDimensions() -> Dimensions {
275
291
  return Dimensions(width: 0, height: 0);
276
292
  }
277
-
293
+
278
294
  func setStatusBarHidden(isHidden: Bool) throws {
279
295
  self.onWindowChange(Notification(name: NSNotification.Name("RCTWindowFrameDidChangeNotification")))
280
296
  }
@@ -0,0 +1,83 @@
1
+ import Foundation
2
+
3
+ struct KeyboardAnimation {
4
+ var animatedImeInset: CGFloat = 0
5
+ var keyboardHeight: CGFloat = 0
6
+ var animationDuration: Double = 0
7
+ var displayLink: CADisplayLink?
8
+ var startTime: CFTimeInterval = 0
9
+ var from: CGFloat = 0
10
+ var to: CGFloat = 0
11
+ }
12
+
13
+ extension NativeIOSPlatform {
14
+ func setupKeyboardListeners() {
15
+ NotificationCenter.default.addObserver(self, selector: #selector(onKeyboardWillShow), name: UIResponder.keyboardWillShowNotification, object: nil)
16
+ NotificationCenter.default.addObserver(self, selector: #selector(onKeyboardWillHide), name: UIResponder.keyboardWillHideNotification, object: nil)
17
+ }
18
+
19
+ func removeKeyboardListeners() {
20
+ keyboardAnimation.displayLink?.invalidate()
21
+
22
+ NotificationCenter.default.removeObserver(
23
+ self,
24
+ name: UIResponder.keyboardWillShowNotification,
25
+ object: nil
26
+ )
27
+ NotificationCenter.default.removeObserver(
28
+ self,
29
+ name: UIResponder.keyboardWillHideNotification,
30
+ object: nil
31
+ )
32
+ }
33
+
34
+ @objc func onKeyboardWillShow(notification: NSNotification) {
35
+ guard let frame = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? CGRect else { return }
36
+ guard let duration = notification.userInfo?[UIResponder.keyboardAnimationDurationUserInfoKey] as? Double else { return }
37
+
38
+ keyboardAnimation.keyboardHeight = frame.height
39
+ keyboardAnimation.animationDuration = duration
40
+
41
+ startAnimation(toValue: keyboardAnimation.keyboardHeight)
42
+ }
43
+
44
+ @objc func onKeyboardWillHide(notification: NSNotification) {
45
+ guard let duration = notification.userInfo?[UIResponder.keyboardAnimationDurationUserInfoKey] as? Double else { return }
46
+
47
+ keyboardAnimation.animationDuration = duration
48
+
49
+ startAnimation(toValue: 0)
50
+ }
51
+
52
+ func startAnimation(toValue targetValue: CGFloat) {
53
+ keyboardAnimation.startTime = CACurrentMediaTime()
54
+ keyboardAnimation.displayLink?.invalidate()
55
+
56
+ keyboardAnimation.from = keyboardAnimation.animatedImeInset
57
+ keyboardAnimation.to = targetValue
58
+
59
+ if (keyboardAnimation.from == keyboardAnimation.to) {
60
+ return
61
+ }
62
+
63
+ keyboardAnimation.displayLink = CADisplayLink(target: self, selector: #selector(updateAnimation))
64
+ keyboardAnimation.displayLink?.add(to: .main, forMode: .default)
65
+ }
66
+
67
+ @objc func updateAnimation() {
68
+ let elapsedTime = CACurrentMediaTime() - keyboardAnimation.startTime
69
+ let linearProgress = min(elapsedTime / keyboardAnimation.animationDuration, 1)
70
+ let easedProgress = 1 - pow(1 - linearProgress, 3)
71
+
72
+ // Interpolate between 'from' and 'to'
73
+ keyboardAnimation.animatedImeInset = keyboardAnimation.from + (keyboardAnimation.to - keyboardAnimation.from) * CGFloat(easedProgress)
74
+
75
+ self.emitImeEvent()
76
+ self.miniRuntime?.insets.ime = keyboardAnimation.animatedImeInset
77
+
78
+ if linearProgress >= 1 {
79
+ keyboardAnimation.displayLink?.invalidate()
80
+ keyboardAnimation.displayLink = nil
81
+ }
82
+ }
83
+ }
@@ -2,40 +2,53 @@ import Foundation
2
2
 
3
3
  extension NativeIOSPlatform {
4
4
  func setupPlatformListeners() {
5
- NotificationCenter.default.addObserver(
6
- self,
7
- selector: #selector(onWindowChange(_:)),
8
- name: NSNotification.Name("RCTWindowFrameDidChangeNotification"),
9
- object: nil
10
- )
5
+ NotificationCenter.default.publisher(for: NSNotification.Name("RCTWindowFrameDidChangeNotification"))
6
+ // add small delay (10ms) to make sure all values are up ot date
7
+ // we MUST call it on current thread, otherwise random crashes occurs
8
+ .delay(for: .milliseconds(10), scheduler: RunLoop.current)
9
+ .sink { [weak self] notification in
10
+ self?.onWindowChange(notification)
11
+ }
12
+ .store(in: &cancellables)
11
13
  }
12
14
 
13
15
  func removePlatformListeners() {
14
- NotificationCenter.default.removeObserver(self, name: NSNotification.Name("RCTWindowFrameDidChangeNotification"), object: nil)
16
+ self.unregisterPlatformListeners()
17
+ }
18
+
19
+ func registerPlatformListener(callback: @escaping (CxxDependencyListener)) throws {
20
+ self.dependencyListeners.append(callback)
15
21
  }
16
22
 
17
- func registerPlatformListener(callback: @escaping (CxxListener)) throws {
18
- listeners.append(callback)
23
+ func registerImeListener(callback: @escaping (() -> Void)) throws {
24
+ self.imeListeners.append(callback)
19
25
  }
20
26
 
21
27
  func emitCxxEvent(dependencies: Array<UnistyleDependency>) {
22
- self.listeners.forEach { $0(dependencies) }
28
+ self.dependencyListeners.forEach { $0(dependencies) }
29
+ }
30
+
31
+ func emitImeEvent() {
32
+ self.imeListeners.forEach { $0() }
33
+ }
34
+
35
+ func unregisterPlatformListeners() {
36
+ cancellables.removeAll()
37
+ dependencyListeners.removeAll()
38
+ imeListeners.removeAll()
23
39
  }
24
40
 
25
41
  @objc func onWindowChange(_ notification: Notification) {
26
- // add small delay (10ms) to make sure all values are up ot date
27
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.01) {
28
- guard let currentMiniRuntime = self.miniRuntime else {
29
- return
30
- }
31
-
32
- let newMiniRuntime = self.buildMiniRuntime()
33
- let changedDependencies = UnistylesNativeMiniRuntime.diff(lhs: currentMiniRuntime, rhs: newMiniRuntime)
34
-
35
- if (changedDependencies.count > 0) {
36
- self.miniRuntime = newMiniRuntime
37
- self.emitCxxEvent(dependencies: changedDependencies)
38
- }
42
+ guard let currentMiniRuntime = self.miniRuntime else {
43
+ return
44
+ }
45
+
46
+ let newMiniRuntime = self.buildMiniRuntime()
47
+ let changedDependencies = UnistylesNativeMiniRuntime.diff(lhs: currentMiniRuntime, rhs: newMiniRuntime)
48
+
49
+ if (changedDependencies.count > 0) {
50
+ self.miniRuntime = newMiniRuntime
51
+ self.emitCxxEvent(dependencies: changedDependencies)
39
52
  }
40
53
  }
41
54
  }
package/ios/Unistyles.h CHANGED
@@ -1,3 +1,4 @@
1
1
  #pragma once
2
2
 
3
+ #import "jsi/jsi.h"
3
4
  #import <React/RCTUtils.h>
@@ -1,13 +1,24 @@
1
1
  #pragma once
2
2
 
3
+ #ifndef RCT_NEW_ARCH_ENABLED
4
+ #error "Unistyles 3.0 requires your project to have New Architecture enabled."
5
+ #endif
6
+
7
+ #if __has_include(<ReactCommon/RCTTurboModuleWithJSIBindings.h>)
8
+ #import <ReactCommon/RCTTurboModuleWithJSIBindings.h>
9
+ #else
10
+ #error "Unistyles 3.0 requires your project to use React Native 0.75 or higher."
11
+ #endif
12
+
3
13
  #import <React/RCTEventEmitter.h>
4
- #import <ReactCommon/RCTTurboModuleWithJSIBindings.h>
5
14
  #import "TurboUnistyles/TurboUnistyles.h"
6
15
  #import <React/RCTSurfacePresenter.h>
7
16
  #import <React/RCTScheduler.h>
17
+ #import <React/RCTRuntimeExecutorModule.h>
18
+ #import <ReactCommon/RCTRuntimeExecutor.h>
8
19
 
9
20
  @interface UnistylesModule: RCTEventEmitter<NativeTurboUnistylesSpec>
10
21
  @end
11
22
 
12
- @interface UnistylesModule()<RCTTurboModuleWithJSIBindings>
23
+ @interface UnistylesModule()<RCTTurboModuleWithJSIBindings, RCTRuntimeExecutorModule>
13
24
  @end
@@ -11,6 +11,7 @@ using namespace margelo::nitro;
11
11
  RCT_EXPORT_MODULE(Unistyles)
12
12
 
13
13
  __weak RCTSurfacePresenter* _surfacePresenter;
14
+ @synthesize runtimeExecutor = _runtimeExecutor;
14
15
 
15
16
  + (BOOL)requiresMainQueueSetup {
16
17
  return YES;
@@ -25,6 +26,8 @@ __weak RCTSurfacePresenter* _surfacePresenter;
25
26
  // check if this is live reload, if so let's replace UnistylesRuntime with new runtime
26
27
  auto hasUnistylesRuntime = HybridObjectRegistry::hasHybridObject("UnistylesRuntime");
27
28
 
29
+ auto& registry = core::UnistylesRegistry::get();
30
+
28
31
  if (hasUnistylesRuntime) {
29
32
  HybridObjectRegistry::unregisterHybridObjectConstructor("UnistylesRuntime");
30
33
  HybridObjectRegistry::unregisterHybridObjectConstructor("UnistylesStyleSheet");
@@ -35,8 +38,15 @@ __weak RCTSurfacePresenter* _surfacePresenter;
35
38
  }
36
39
 
37
40
  - (void)createHybrids:(jsi::Runtime&)rt {
41
+ auto runOnJSThread = ([executor = _runtimeExecutor](std::function<void(jsi::Runtime& rt)> &&callback) {
42
+ __block auto objcCallback = callback;
43
+
44
+ [executor execute:^(jsi::Runtime& rt){
45
+ objcCallback(rt);
46
+ }];
47
+ });
38
48
  auto nativePlatform = Unistyles::NativePlatform::create();
39
- auto unistylesRuntime = std::make_shared<HybridUnistylesRuntime>(nativePlatform, rt);
49
+ auto unistylesRuntime = std::make_shared<HybridUnistylesRuntime>(nativePlatform, rt, runOnJSThread);
40
50
  auto uiManager = [_surfacePresenter scheduler].uiManager;
41
51
  auto styleSheet = std::make_shared<HybridStyleSheet>(unistylesRuntime, uiManager);
42
52
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","isWeb","exports","Platform","OS","isIOS","isAndroid"],"sourceRoot":"../../src","sources":["common.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAGE,qBAAQ,CAACC,EAAE,KAAK,KAAK;AACnC,MAAMC,KAAK,GAAAH,OAAA,CAAAG,KAAA,GAAGF,qBAAQ,CAACC,EAAE,KAAK,KAAK;AACnC,MAAME,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGH,qBAAQ,CAACC,EAAE,KAAK,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","isWeb","exports","Platform","OS","isIOS","isAndroid"],"sourceRoot":"../../src","sources":["common.js"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACO,MAAMC,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAGE,qBAAQ,CAACC,EAAE,KAAK,KAAK;AACnC,MAAMC,KAAK,GAAAH,OAAA,CAAAG,KAAA,GAAGF,qBAAQ,CAACC,EAAE,KAAK,KAAK;AACnC,MAAME,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGH,qBAAQ,CAACC,EAAE,KAAK,SAAS","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createUnistylesComponent = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const createUnistylesComponent = (Component, _) => {
11
+ return props => {
12
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {
13
+ ...props
14
+ });
15
+ };
16
+ };
17
+ exports.createUnistylesComponent = createUnistylesComponent;
18
+ //# sourceMappingURL=createUnistylesComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_jsxRuntime","e","__esModule","default","createUnistylesComponent","Component","_","props","jsx","exports"],"sourceRoot":"../../../src","sources":["core/createUnistylesComponent.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAsE,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAK/D,MAAMG,wBAAwB,GAAGA,CAA+BC,SAAY,EAAEC,CAAc,KAAK;EACpG,OAAQC,KAAwB,IAAK;IACjC,oBAAO,IAAAP,WAAA,CAAAQ,GAAA,EAACH,SAAS;MAAA,GAAKE;IAAK,CAAG,CAAC;EACnC,CAAC;AACL,CAAC;AAAAE,OAAA,CAAAL,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createUnistylesComponent = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _specs = require("../specs");
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ const createUnistylesComponent = (Component, mappings) => {
12
+ return props => {
13
+ const [theme, setTheme] = (0, _react.useState)(_specs.UnistylesRuntime.getTheme());
14
+ const [, setRt] = (0, _react.useState)(0);
15
+ (0, _react.useEffect)(() => {
16
+ const removeChangeListener = _specs.StyleSheet.addChangeListener(dependencies => {
17
+ const componentDependencies = props.style?.uni__dependencies || mappings(theme).style?.uni__dependencies;
18
+ if (dependencies.includes(_specs.UnistyleDependency.Theme) && (!componentDependencies || componentDependencies.includes(_specs.UnistyleDependency.Theme))) {
19
+ setTheme(_specs.UnistylesRuntime.getTheme());
20
+ }
21
+ if (dependencies.some(dependency => dependency >= 2) && (!componentDependencies || componentDependencies.some(dependency => dependency >= 2))) {
22
+ setRt(prevState => prevState + 1);
23
+ }
24
+ });
25
+ return () => {
26
+ removeChangeListener();
27
+ };
28
+ }, []);
29
+ const mergedProps = {
30
+ ...mappings(theme)
31
+ };
32
+ Object.keys(props).forEach(key => {
33
+ if (key in mergedProps) {
34
+ mergedProps[key] = Object.assign(props[key], mergedProps[key]);
35
+ return;
36
+ }
37
+ mergedProps[key] = props[key];
38
+ });
39
+ return /*#__PURE__*/_react.default.createElement(Component, {
40
+ ...mergedProps
41
+ });
42
+ };
43
+ };
44
+ exports.createUnistylesComponent = createUnistylesComponent;
45
+ //# sourceMappingURL=createUnistylesComponent.native.js.mapL=createUnistylesComponent.native.js.map
@@ -0,0 +1,2 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_specs","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","createUnistylesComponent","Component","mappings","props","theme","setTheme","useState","UnistylesRuntime","getTheme","setRt","useEffect","removeChangeListener","StyleSheet","addChangeListener","dependencies","componentDependencies","style","uni__dependencies","includes","UnistyleDependency","Theme","some","dependency","prevState","mergedProps","keys","forEach","key","assign","React","createElement","exports"],"sourceRoot":"../../../src","sources":["core/createUnistylesComponent.native.js"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAA4E,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AACrE,MAAMW,wBAAwB,GAAGA,CAACC,SAAS,EAAEC,QAAQ,KAAK;EAC7D,OAAQC,KAAK,IAAK;IACd,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAACC,uBAAgB,CAACC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,GAAGC,KAAK,CAAC,GAAG,IAAAH,eAAQ,EAAC,CAAC,CAAC;IAC7B,IAAAI,gBAAS,EAAC,MAAM;MACZ,MAAMC,oBAAoB,GAAGC,iBAAU,CAACC,iBAAiB,CAACC,YAAY,IAAI;QACtE,MAAMC,qBAAqB,GAAIZ,KAAK,CAACa,KAAK,EAAEC,iBAAiB,IAAIf,QAAQ,CAACE,KAAK,CAAC,CAACY,KAAK,EAAEC,iBAAkB;QAC1G,IAAIH,YAAY,CAACI,QAAQ,CAACC,yBAAkB,CAACC,KAAK,CAAC,KAAK,CAACL,qBAAqB,IAAIA,qBAAqB,CAACG,QAAQ,CAACC,yBAAkB,CAACC,KAAK,CAAC,CAAC,EAAE;UACzIf,QAAQ,CAACE,uBAAgB,CAACC,QAAQ,CAAC,CAAC,CAAC;QACzC;QACA,IAAIM,YAAY,CAACO,IAAI,CAACC,UAAU,IAAIA,UAAU,IAAI,CAAC,CAAC,KAAK,CAACP,qBAAqB,IAAIA,qBAAqB,CAACM,IAAI,CAACC,UAAU,IAAIA,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE;UAC3Ib,KAAK,CAACc,SAAS,IAAIA,SAAS,GAAG,CAAC,CAAC;QACrC;MACJ,CAAC,CAAC;MACF,OAAO,MAAM;QACTZ,oBAAoB,CAAC,CAAC;MAC1B,CAAC;IACL,CAAC,EAAE,EAAE,CAAC;IACN,MAAMa,WAAW,GAAG;MAAE,GAAGtB,QAAQ,CAACE,KAAK;IAAE,CAAC;IAC1CZ,MAAM,CAACiC,IAAI,CAACtB,KAAK,CAAC,CAACuB,OAAO,CAACC,GAAG,IAAI;MAC9B,IAAIA,GAAG,IAAIH,WAAW,EAAE;QACpBA,WAAW,CAACG,GAAG,CAAC,GAAGnC,MAAM,CAACoC,MAAM,CAACzB,KAAK,CAACwB,GAAG,CAAC,EAAEH,WAAW,CAACG,GAAG,CAAC,CAAC;QAC9D;MACJ;MACAH,WAAW,CAACG,GAAG,CAAC,GAAGxB,KAAK,CAACwB,GAAG,CAAC;IACjC,CAAC,CAAC;IACF,oBAAOE,cAAK,CAACC,aAAa,CAAC7B,SAAS,EAAE;MAAE,GAAGuB;IAAY,CAAC,CAAC;EAC7D,CAAC;AACL,CAAC;AAACO,OAAA,CAAA/B,wBAAA,GAAAA,wBAAA","ignoreList":[]}
2
+ AA,GAAAA,wBAAA","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "createUnistylesComponent", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _createUnistylesComponent.createUnistylesComponent;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "useBreakpoint", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _useBreakpoint.useBreakpoint;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useTheme", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _useTheme.useTheme;
22
+ }
23
+ });
24
+ var _useBreakpoint = require("./useBreakpoint");
25
+ var _useTheme = require("./useTheme");
26
+ var _createUnistylesComponent = require("./createUnistylesComponent");
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_useBreakpoint","require","_useTheme","_createUnistylesComponent"],"sourceRoot":"../../../src","sources":["core/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,yBAAA,GAAAF,OAAA","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBreakpoint = void 0;
7
+ var _react = require("react");
8
+ var _web = require("../web");
9
+ var _listener = require("../web/listener");
10
+ var _NativePlatform = require("../specs/NativePlatform");
11
+ const useBreakpoint = () => {
12
+ const [breakpoint, setBreakpoint] = (0, _react.useState)(_web.UnistylesRuntime.breakpoint);
13
+ (0, _react.useEffect)(() => {
14
+ const removeChangeListener = _listener.UnistylesListener.addListeners([_NativePlatform.UnistyleDependency.Breakpoints], () => setBreakpoint(_web.UnistylesRuntime.breakpoint));
15
+ return () => {
16
+ removeChangeListener();
17
+ };
18
+ }, []);
19
+ return breakpoint;
20
+ };
21
+ exports.useBreakpoint = useBreakpoint;
22
+ //# sourceMappingURL=useBreakpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_web","_listener","_NativePlatform","useBreakpoint","breakpoint","setBreakpoint","useState","UnistylesRuntime","useEffect","removeChangeListener","UnistylesListener","addListeners","UnistyleDependency","Breakpoints","exports"],"sourceRoot":"../../../src","sources":["core/useBreakpoint.js"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACO,MAAMI,aAAa,GAAGA,CAAA,KAAM;EAC/B,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAACC,qBAAgB,CAACH,UAAU,CAAC;EACzE,IAAAI,gBAAS,EAAC,MAAM;IACZ,MAAMC,oBAAoB,GAAGC,2BAAiB,CAACC,YAAY,CAAC,CAACC,kCAAkB,CAACC,WAAW,CAAC,EAAE,MAAMR,aAAa,CAACE,qBAAgB,CAACH,UAAU,CAAC,CAAC;IAC/I,OAAO,MAAM;MACTK,oBAAoB,CAAC,CAAC;IAC1B,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EACN,OAAOL,UAAU;AACrB,CAAC;AAACU,OAAA,CAAAX,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBreakpoint = void 0;
7
+ var _react = require("react");
8
+ var _specs = require("../specs");
9
+ const useBreakpoint = () => {
10
+ const [breakpoint, setBreakpoint] = (0, _react.useState)(_specs.UnistylesRuntime.breakpoint);
11
+ (0, _react.useEffect)(() => {
12
+ const removeChangeListener = _specs.StyleSheet.addChangeListener(dependencies => {
13
+ if (dependencies.includes(_specs.UnistyleDependency.Breakpoints)) {
14
+ setBreakpoint(_specs.UnistylesRuntime.breakpoint);
15
+ }
16
+ });
17
+ return () => {
18
+ removeChangeListener();
19
+ };
20
+ }, []);
21
+ return breakpoint;
22
+ };
23
+ exports.useBreakpoint = useBreakpoint;
24
+ //# sourceMappingURL=useBreakpoint.native.js.map
@@ -0,0 +1,2 @@
1
+ {"version":3,"names":["_react","require","_specs","useBreakpoint","breakpoint","setBreakpoint","useState","UnistylesRuntime","useEffect","removeChangeListener","StyleSheet","addChangeListener","dependencies","includes","UnistyleDependency","Breakpoints","exports"],"sourceRoot":"../../../src","sources":["core/useBreakpoint.native.js"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACO,MAAME,aAAa,GAAGA,CAAA,KAAM;EAC/B,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAACC,uBAAgB,CAACH,UAAU,CAAC;EACzE,IAAAI,gBAAS,EAAC,MAAM;IACZ,MAAMC,oBAAoB,GAAGC,iBAAU,CAACC,iBAAiB,CAACC,YAAY,IAAI;MACtE,IAAIA,YAAY,CAACC,QAAQ,CAACC,yBAAkB,CAACC,WAAW,CAAC,EAAE;QACvDV,aAAa,CAACE,uBAAgB,CAACH,UAAU,CAAC;MAC9C;IACJ,CAAC,CAAC;IACF,OAAO,MAAM;MACTK,oBAAoB,CAAC,CAAC;IAC1B,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EACN,OAAOL,UAAU;AACrB,CAAC;AAACY,OAAA,CAAAb,aAAA,GAAAA,aAAA","ignoreList":[]}
2
+