react-native-unistyles 3.0.0-alpha.9 → 3.0.0-beta.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 (596) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +30 -41
  3. package/Unistyles.podspec +1 -1
  4. package/android/CMakeLists.txt +22 -45
  5. package/android/build.gradle +16 -5
  6. package/android/src/main/cxx/NativeUnistylesModule.cpp +71 -0
  7. package/android/src/main/cxx/NativeUnistylesModule.h +42 -0
  8. package/android/src/main/cxx/cpp-adapter.cpp +8 -86
  9. package/android/src/main/java/com/unistyles/Equatable.kt +61 -0
  10. package/android/src/main/java/com/unistyles/NativePlatform+android.kt +294 -0
  11. package/android/src/main/java/com/unistyles/NativePlatform+insets.kt +152 -0
  12. package/android/src/main/java/com/unistyles/NativePlatform+listener.kt +59 -0
  13. package/android/src/main/java/com/unistyles/UnistylesModule.kt +51 -0
  14. package/android/src/main/java/com/unistyles/UnistylesPackage.kt +16 -14
  15. package/cxx/NativePlatform.h +11 -0
  16. package/cxx/common/Constants.h +3 -0
  17. package/cxx/common/Helpers.h +59 -6
  18. package/cxx/core/HostStyle.cpp +7 -2
  19. package/cxx/core/HostStyle.h +1 -1
  20. package/cxx/core/StyleSheet.h +0 -1
  21. package/cxx/core/Unistyle.h +8 -5
  22. package/cxx/core/UnistyleData.h +4 -3
  23. package/cxx/core/UnistyleWrapper.h +102 -7
  24. package/cxx/core/UnistylesCommitHook.cpp +14 -18
  25. package/cxx/core/UnistylesCommitHook.h +6 -11
  26. package/cxx/core/UnistylesCommitShadowNode.h +13 -0
  27. package/cxx/core/UnistylesMountHook.cpp +28 -0
  28. package/cxx/core/UnistylesMountHook.h +27 -0
  29. package/cxx/core/UnistylesRegistry.cpp +108 -48
  30. package/cxx/core/UnistylesRegistry.h +10 -10
  31. package/cxx/core/UnistylesState.cpp +29 -8
  32. package/cxx/core/UnistylesState.h +5 -2
  33. package/cxx/hybridObjects/HybridNavigationBar.cpp +0 -4
  34. package/cxx/hybridObjects/HybridNavigationBar.h +3 -4
  35. package/cxx/hybridObjects/HybridShadowRegistry.cpp +18 -13
  36. package/cxx/hybridObjects/HybridStatusBar.cpp +0 -4
  37. package/cxx/hybridObjects/HybridStatusBar.h +3 -4
  38. package/cxx/hybridObjects/HybridStyleSheet.cpp +145 -19
  39. package/cxx/hybridObjects/HybridStyleSheet.h +27 -5
  40. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +78 -11
  41. package/cxx/hybridObjects/HybridUnistylesRuntime.h +17 -3
  42. package/cxx/parser/Parser.cpp +200 -63
  43. package/cxx/parser/Parser.h +7 -5
  44. package/cxx/shadowTree/ShadowLeafUpdate.h +3 -1
  45. package/cxx/shadowTree/ShadowTrafficController.h +71 -0
  46. package/cxx/shadowTree/ShadowTreeManager.cpp +28 -19
  47. package/cxx/shadowTree/ShadowTreeManager.h +3 -2
  48. package/ios/Equatable.swift +2 -1
  49. package/ios/Extensions.swift +3 -1
  50. package/ios/NativePlatform+ios.swift +34 -9
  51. package/ios/NativePlatform+keyboard.swift +83 -0
  52. package/ios/NativePlatformListener+ios.swift +36 -24
  53. package/ios/Unistyles.h +1 -0
  54. package/ios/UnistylesModuleOnLoad.h +8 -2
  55. package/ios/UnistylesModuleOnLoad.mm +9 -1
  56. package/lib/commonjs/components/Display.js +18 -0
  57. package/lib/commonjs/components/Display.js.map +1 -0
  58. package/lib/commonjs/components/Hide.js +18 -0
  59. package/lib/commonjs/components/Hide.js.map +1 -0
  60. package/lib/commonjs/components/Pressable.js +74 -0
  61. package/lib/commonjs/components/Pressable.js.map +1 -0
  62. package/lib/commonjs/components/Pressable.web.js +115 -0
  63. package/lib/commonjs/components/Pressable.web.js.map +1 -0
  64. package/lib/commonjs/components/index.js +27 -0
  65. package/lib/commonjs/components/index.js.map +1 -0
  66. package/lib/commonjs/core/createUnistylesComponent.js +79 -0
  67. package/lib/commonjs/core/createUnistylesComponent.js.map +1 -0
  68. package/lib/commonjs/core/createUnistylesComponent.native.js +82 -0
  69. package/lib/commonjs/core/createUnistylesComponent.native.js.map +1 -0
  70. package/lib/commonjs/core/getBoundArgs.js +18 -0
  71. package/lib/commonjs/core/getBoundArgs.js.map +1 -0
  72. package/lib/commonjs/core/getId.js +9 -0
  73. package/lib/commonjs/core/getId.js.map +1 -0
  74. package/lib/commonjs/core/index.js +27 -0
  75. package/lib/commonjs/core/index.js.map +1 -0
  76. package/lib/commonjs/hooks/index.js +13 -0
  77. package/lib/commonjs/hooks/index.js.map +1 -0
  78. package/lib/commonjs/hooks/useMedia.js +59 -0
  79. package/lib/commonjs/hooks/useMedia.js.map +1 -0
  80. package/lib/commonjs/hooks/useMedia.web.js +43 -0
  81. package/lib/commonjs/hooks/useMedia.web.js.map +1 -0
  82. package/lib/commonjs/index.js +28 -11
  83. package/lib/commonjs/index.js.map +1 -1
  84. package/lib/commonjs/mq.js +31 -18
  85. package/lib/commonjs/mq.js.map +1 -1
  86. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js +1 -0
  87. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
  88. package/lib/commonjs/specs/NavigtionBar/index.js +0 -15
  89. package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
  90. package/lib/commonjs/specs/ShadowRegistry/index.js +11 -8
  91. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  92. package/lib/commonjs/specs/StatusBar/index.js +0 -5
  93. package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
  94. package/lib/commonjs/specs/StyleSheet/index.js +1 -0
  95. package/lib/commonjs/specs/StyleSheet/index.js.map +1 -1
  96. package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js +1 -2
  97. package/lib/commonjs/specs/TurboUnistyles/NativeTurboUnistyles.js.map +1 -1
  98. package/lib/commonjs/specs/UnistylesRuntime/index.js +0 -2
  99. package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
  100. package/lib/commonjs/specs/index.js +7 -0
  101. package/lib/commonjs/specs/index.js.map +1 -1
  102. package/lib/commonjs/specs/index.web.js +0 -7
  103. package/lib/commonjs/specs/index.web.js.map +1 -1
  104. package/lib/commonjs/types/stylesheet.js.map +1 -1
  105. package/lib/commonjs/utils.js +26 -0
  106. package/lib/commonjs/utils.js.map +1 -0
  107. package/lib/commonjs/web/convert/index.js +27 -24
  108. package/lib/commonjs/web/convert/index.js.map +1 -1
  109. package/lib/commonjs/web/convert/object/boxShadow.js +59 -0
  110. package/lib/commonjs/web/convert/object/boxShadow.js.map +1 -0
  111. package/lib/commonjs/web/convert/object/filter.js +42 -0
  112. package/lib/commonjs/web/convert/object/filter.js.map +1 -0
  113. package/lib/commonjs/web/convert/object/index.js +39 -0
  114. package/lib/commonjs/web/convert/object/index.js.map +1 -0
  115. package/lib/commonjs/web/convert/object/objectStyle.js +56 -0
  116. package/lib/commonjs/web/convert/object/objectStyle.js.map +1 -0
  117. package/lib/commonjs/web/convert/object/transform.js +27 -0
  118. package/lib/commonjs/web/convert/object/transform.js.map +1 -0
  119. package/lib/commonjs/web/convert/pseudo.js +10 -0
  120. package/lib/commonjs/web/convert/pseudo.js.map +1 -0
  121. package/lib/commonjs/web/convert/{boxShadow.js → shadow/boxShadow.js} +22 -37
  122. package/lib/commonjs/web/convert/shadow/boxShadow.js.map +1 -0
  123. package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js +38 -0
  124. package/lib/commonjs/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
  125. package/lib/commonjs/web/convert/shadow/index.js +28 -0
  126. package/lib/commonjs/web/convert/shadow/index.js.map +1 -0
  127. package/lib/commonjs/web/convert/{textShadow.js → shadow/textShadow.js} +21 -35
  128. package/lib/commonjs/web/convert/shadow/textShadow.js.map +1 -0
  129. package/lib/commonjs/web/convert/style.js +11 -7
  130. package/lib/commonjs/web/convert/style.js.map +1 -1
  131. package/lib/commonjs/web/convert/types.js.map +1 -1
  132. package/lib/commonjs/web/convert/utils.js +8 -4
  133. package/lib/commonjs/web/convert/utils.js.map +1 -1
  134. package/lib/commonjs/web/create.js +35 -67
  135. package/lib/commonjs/web/create.js.map +1 -1
  136. package/lib/commonjs/web/index.js +18 -7
  137. package/lib/commonjs/web/index.js.map +1 -1
  138. package/lib/commonjs/web/listener.js +61 -0
  139. package/lib/commonjs/web/listener.js.map +1 -0
  140. package/lib/commonjs/web/mock.js +2 -12
  141. package/lib/commonjs/web/mock.js.map +1 -1
  142. package/lib/commonjs/web/registry.js +154 -19
  143. package/lib/commonjs/web/registry.js.map +1 -1
  144. package/lib/commonjs/web/runtime.js +22 -13
  145. package/lib/commonjs/web/runtime.js.map +1 -1
  146. package/lib/commonjs/web/shadowRegistry.js +143 -0
  147. package/lib/commonjs/web/shadowRegistry.js.map +1 -0
  148. package/lib/commonjs/web/state.js +31 -72
  149. package/lib/commonjs/web/state.js.map +1 -1
  150. package/lib/commonjs/web/utils/common.js +39 -0
  151. package/lib/commonjs/web/utils/common.js.map +1 -0
  152. package/lib/commonjs/web/utils/index.js +28 -0
  153. package/lib/commonjs/web/utils/index.js.map +1 -0
  154. package/lib/commonjs/web/utils/unistyle.js +77 -0
  155. package/lib/commonjs/web/utils/unistyle.js.map +1 -0
  156. package/lib/commonjs/web/{variants/getVariants.js → variants.js} +2 -2
  157. package/lib/commonjs/web/variants.js.map +1 -0
  158. package/lib/module/components/Display.js +13 -0
  159. package/lib/module/components/Display.js.map +1 -0
  160. package/lib/module/components/Hide.js +13 -0
  161. package/lib/module/components/Hide.js.map +1 -0
  162. package/lib/module/components/Pressable.js +68 -0
  163. package/lib/module/components/Pressable.js.map +1 -0
  164. package/lib/module/components/Pressable.web.js +109 -0
  165. package/lib/module/components/Pressable.web.js.map +1 -0
  166. package/lib/module/components/index.js +6 -0
  167. package/lib/module/components/index.js.map +1 -0
  168. package/lib/module/core/createUnistylesComponent.js +72 -0
  169. package/lib/module/core/createUnistylesComponent.js.map +1 -0
  170. package/lib/module/core/createUnistylesComponent.native.js +75 -0
  171. package/lib/module/core/createUnistylesComponent.native.js.map +1 -0
  172. package/lib/module/core/getBoundArgs.js +13 -0
  173. package/lib/module/core/getBoundArgs.js.map +1 -0
  174. package/lib/module/core/getId.js +4 -0
  175. package/lib/module/core/getId.js.map +1 -0
  176. package/lib/module/core/index.js +6 -0
  177. package/lib/module/core/index.js.map +1 -0
  178. package/lib/module/hooks/index.js +4 -0
  179. package/lib/module/hooks/index.js.map +1 -0
  180. package/lib/module/hooks/useMedia.js +54 -0
  181. package/lib/module/hooks/useMedia.js.map +1 -0
  182. package/lib/module/hooks/useMedia.web.js +38 -0
  183. package/lib/module/hooks/useMedia.web.js.map +1 -0
  184. package/lib/module/index.js +2 -9
  185. package/lib/module/index.js.map +1 -1
  186. package/lib/module/mq.js +27 -17
  187. package/lib/module/mq.js.map +1 -1
  188. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js +1 -0
  189. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js.map +1 -1
  190. package/lib/module/specs/NavigtionBar/index.js +0 -10
  191. package/lib/module/specs/NavigtionBar/index.js.map +1 -1
  192. package/lib/module/specs/ShadowRegistry/index.js +11 -8
  193. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  194. package/lib/module/specs/StatusBar/index.js +1 -6
  195. package/lib/module/specs/StatusBar/index.js.map +1 -1
  196. package/lib/module/specs/StyleSheet/index.js +1 -0
  197. package/lib/module/specs/StyleSheet/index.js.map +1 -1
  198. package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js +1 -2
  199. package/lib/module/specs/TurboUnistyles/NativeTurboUnistyles.js.map +1 -1
  200. package/lib/module/specs/UnistylesRuntime/index.js +0 -2
  201. package/lib/module/specs/UnistylesRuntime/index.js.map +1 -1
  202. package/lib/module/specs/index.js +2 -1
  203. package/lib/module/specs/index.js.map +1 -1
  204. package/lib/module/specs/index.web.js +0 -1
  205. package/lib/module/specs/index.web.js.map +1 -1
  206. package/lib/module/types/stylesheet.js.map +1 -1
  207. package/lib/module/utils.js +21 -0
  208. package/lib/module/utils.js.map +1 -0
  209. package/lib/module/web/convert/index.js +23 -20
  210. package/lib/module/web/convert/index.js.map +1 -1
  211. package/lib/module/web/convert/object/boxShadow.js +54 -0
  212. package/lib/module/web/convert/object/boxShadow.js.map +1 -0
  213. package/lib/module/web/convert/object/filter.js +37 -0
  214. package/lib/module/web/convert/object/filter.js.map +1 -0
  215. package/lib/module/web/convert/object/index.js +6 -0
  216. package/lib/module/web/convert/object/index.js.map +1 -0
  217. package/lib/module/web/convert/object/objectStyle.js +51 -0
  218. package/lib/module/web/convert/object/objectStyle.js.map +1 -0
  219. package/lib/module/web/convert/object/transform.js +22 -0
  220. package/lib/module/web/convert/object/transform.js.map +1 -0
  221. package/lib/module/web/convert/pseudo.js +5 -0
  222. package/lib/module/web/convert/pseudo.js.map +1 -0
  223. package/lib/module/web/convert/shadow/boxShadow.js +57 -0
  224. package/lib/module/web/convert/shadow/boxShadow.js.map +1 -0
  225. package/lib/module/web/convert/shadow/getShadowBreakpoints.js +33 -0
  226. package/lib/module/web/convert/shadow/getShadowBreakpoints.js.map +1 -0
  227. package/lib/module/web/convert/shadow/index.js +5 -0
  228. package/lib/module/web/convert/shadow/index.js.map +1 -0
  229. package/lib/module/web/convert/shadow/textShadow.js +54 -0
  230. package/lib/module/web/convert/shadow/textShadow.js.map +1 -0
  231. package/lib/module/web/convert/style.js +11 -7
  232. package/lib/module/web/convert/style.js.map +1 -1
  233. package/lib/module/web/convert/types.js.map +1 -1
  234. package/lib/module/web/convert/utils.js +5 -3
  235. package/lib/module/web/convert/utils.js.map +1 -1
  236. package/lib/module/web/create.js +37 -69
  237. package/lib/module/web/create.js.map +1 -1
  238. package/lib/module/web/index.js +9 -3
  239. package/lib/module/web/index.js.map +1 -1
  240. package/lib/module/web/listener.js +57 -0
  241. package/lib/module/web/listener.js.map +1 -0
  242. package/lib/module/web/mock.js +1 -11
  243. package/lib/module/web/mock.js.map +1 -1
  244. package/lib/module/web/registry.js +155 -20
  245. package/lib/module/web/registry.js.map +1 -1
  246. package/lib/module/web/runtime.js +23 -14
  247. package/lib/module/web/runtime.js.map +1 -1
  248. package/lib/module/web/shadowRegistry.js +139 -0
  249. package/lib/module/web/shadowRegistry.js.map +1 -0
  250. package/lib/module/web/state.js +32 -73
  251. package/lib/module/web/state.js.map +1 -1
  252. package/lib/module/web/utils/common.js +28 -0
  253. package/lib/module/web/utils/common.js.map +1 -0
  254. package/lib/module/web/utils/index.js +5 -0
  255. package/lib/module/web/utils/index.js.map +1 -0
  256. package/lib/module/web/utils/unistyle.js +65 -0
  257. package/lib/module/web/utils/unistyle.js.map +1 -0
  258. package/lib/module/web/{variants/getVariants.js → variants.js} +2 -2
  259. package/lib/module/web/variants.js.map +1 -0
  260. package/lib/typescript/src/components/Display.d.ts +7 -0
  261. package/lib/typescript/src/components/Display.d.ts.map +1 -0
  262. package/lib/typescript/src/components/Hide.d.ts +7 -0
  263. package/lib/typescript/src/components/Hide.d.ts.map +1 -0
  264. package/lib/typescript/src/components/Pressable.d.ts +8 -0
  265. package/lib/typescript/src/components/Pressable.d.ts.map +1 -0
  266. package/lib/typescript/src/components/Pressable.web.d.ts +14 -0
  267. package/lib/typescript/src/components/Pressable.web.d.ts.map +1 -0
  268. package/lib/typescript/src/components/index.d.ts +4 -0
  269. package/lib/typescript/src/components/index.d.ts.map +1 -0
  270. package/lib/typescript/src/core/createUnistylesComponent.d.ts +8 -0
  271. package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +1 -0
  272. package/lib/typescript/src/core/createUnistylesComponent.native.d.ts +8 -0
  273. package/lib/typescript/src/core/createUnistylesComponent.native.d.ts.map +1 -0
  274. package/lib/typescript/src/core/getBoundArgs.d.ts +2 -0
  275. package/lib/typescript/src/core/getBoundArgs.d.ts.map +1 -0
  276. package/lib/typescript/src/core/getId.d.ts +2 -0
  277. package/lib/typescript/src/core/getId.d.ts.map +1 -0
  278. package/lib/typescript/src/core/index.d.ts +4 -0
  279. package/lib/typescript/src/core/index.d.ts.map +1 -0
  280. package/lib/typescript/src/hooks/index.d.ts +2 -0
  281. package/lib/typescript/src/hooks/index.d.ts.map +1 -0
  282. package/lib/typescript/src/hooks/useMedia.d.ts +6 -0
  283. package/lib/typescript/src/hooks/useMedia.d.ts.map +1 -0
  284. package/lib/typescript/src/hooks/useMedia.web.d.ts +6 -0
  285. package/lib/typescript/src/hooks/useMedia.web.d.ts.map +1 -0
  286. package/lib/typescript/src/index.d.ts +3 -0
  287. package/lib/typescript/src/index.d.ts.map +1 -1
  288. package/lib/typescript/src/mq.d.ts +8 -0
  289. package/lib/typescript/src/mq.d.ts.map +1 -1
  290. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts +8 -6
  291. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
  292. package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts +0 -1
  293. package/lib/typescript/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.d.ts.map +1 -1
  294. package/lib/typescript/src/specs/NavigtionBar/index.d.ts +1 -10
  295. package/lib/typescript/src/specs/NavigtionBar/index.d.ts.map +1 -1
  296. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +4 -4
  297. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  298. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts +4 -0
  299. package/lib/typescript/src/specs/ShadowRegistry/types.d.ts.map +1 -1
  300. package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts +0 -1
  301. package/lib/typescript/src/specs/StatusBar/UnistylesStatusBar.nitro.d.ts.map +1 -1
  302. package/lib/typescript/src/specs/StatusBar/index.d.ts +2 -4
  303. package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
  304. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts +3 -1
  305. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts.map +1 -1
  306. package/lib/typescript/src/specs/StyleSheet/index.d.ts +5 -3
  307. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  308. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts +1 -1
  309. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
  310. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +4 -2
  311. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
  312. package/lib/typescript/src/specs/index.d.ts +4 -2
  313. package/lib/typescript/src/specs/index.d.ts.map +1 -1
  314. package/lib/typescript/src/specs/index.web.d.ts +0 -2
  315. package/lib/typescript/src/specs/index.web.d.ts.map +1 -1
  316. package/lib/typescript/src/types/breakpoints.d.ts +11 -11
  317. package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
  318. package/lib/typescript/src/types/common.d.ts +2 -0
  319. package/lib/typescript/src/types/common.d.ts.map +1 -1
  320. package/lib/typescript/src/types/index.d.ts +2 -2
  321. package/lib/typescript/src/types/index.d.ts.map +1 -1
  322. package/lib/typescript/src/types/stylesheet.d.ts +6 -4
  323. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
  324. package/lib/typescript/src/types/variants.d.ts +4 -1
  325. package/lib/typescript/src/types/variants.d.ts.map +1 -1
  326. package/lib/typescript/src/utils.d.ts +2 -0
  327. package/lib/typescript/src/utils.d.ts.map +1 -0
  328. package/lib/typescript/src/web/convert/index.d.ts +1 -2
  329. package/lib/typescript/src/web/convert/index.d.ts.map +1 -1
  330. package/lib/typescript/src/web/convert/object/boxShadow.d.ts +9 -0
  331. package/lib/typescript/src/web/convert/object/boxShadow.d.ts.map +1 -0
  332. package/lib/typescript/src/web/convert/object/filter.d.ts +3 -0
  333. package/lib/typescript/src/web/convert/object/filter.d.ts.map +1 -0
  334. package/lib/typescript/src/web/convert/object/index.d.ts +4 -0
  335. package/lib/typescript/src/web/convert/object/index.d.ts.map +1 -0
  336. package/lib/typescript/src/web/convert/object/objectStyle.d.ts +5 -0
  337. package/lib/typescript/src/web/convert/object/objectStyle.d.ts.map +1 -0
  338. package/lib/typescript/src/web/convert/object/transform.d.ts +3 -0
  339. package/lib/typescript/src/web/convert/object/transform.d.ts.map +1 -0
  340. package/lib/typescript/src/web/convert/pseudo.d.ts +6 -0
  341. package/lib/typescript/src/web/convert/pseudo.d.ts.map +1 -0
  342. package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts +8 -0
  343. package/lib/typescript/src/web/convert/shadow/boxShadow.d.ts.map +1 -0
  344. package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts +2 -0
  345. package/lib/typescript/src/web/convert/shadow/getShadowBreakpoints.d.ts.map +1 -0
  346. package/lib/typescript/src/web/convert/shadow/index.d.ts +3 -0
  347. package/lib/typescript/src/web/convert/shadow/index.d.ts.map +1 -0
  348. package/lib/typescript/src/web/convert/shadow/textShadow.d.ts +8 -0
  349. package/lib/typescript/src/web/convert/shadow/textShadow.d.ts.map +1 -0
  350. package/lib/typescript/src/web/convert/style.d.ts +1 -2
  351. package/lib/typescript/src/web/convert/style.d.ts.map +1 -1
  352. package/lib/typescript/src/web/convert/types.d.ts +7 -1
  353. package/lib/typescript/src/web/convert/types.d.ts.map +1 -1
  354. package/lib/typescript/src/web/convert/utils.d.ts +8 -4
  355. package/lib/typescript/src/web/convert/utils.d.ts.map +1 -1
  356. package/lib/typescript/src/web/create.d.ts +215 -1221
  357. package/lib/typescript/src/web/create.d.ts.map +1 -1
  358. package/lib/typescript/src/web/index.d.ts +223 -1222
  359. package/lib/typescript/src/web/index.d.ts.map +1 -1
  360. package/lib/typescript/src/web/{listener/listener.d.ts → listener.d.ts} +5 -2
  361. package/lib/typescript/src/web/listener.d.ts.map +1 -0
  362. package/lib/typescript/src/web/mock.d.ts +0 -9
  363. package/lib/typescript/src/web/mock.d.ts.map +1 -1
  364. package/lib/typescript/src/web/registry.d.ts +18 -6
  365. package/lib/typescript/src/web/registry.d.ts.map +1 -1
  366. package/lib/typescript/src/web/runtime.d.ts +6 -5
  367. package/lib/typescript/src/web/runtime.d.ts.map +1 -1
  368. package/lib/typescript/src/web/shadowRegistry.d.ts +17 -0
  369. package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -0
  370. package/lib/typescript/src/web/state.d.ts +3 -9
  371. package/lib/typescript/src/web/state.d.ts.map +1 -1
  372. package/lib/typescript/src/web/utils/common.d.ts +8 -0
  373. package/lib/typescript/src/web/utils/common.d.ts.map +1 -0
  374. package/lib/typescript/src/web/utils/index.d.ts +3 -0
  375. package/lib/typescript/src/web/utils/index.d.ts.map +1 -0
  376. package/lib/typescript/src/web/utils/unistyle.d.ts +19 -0
  377. package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -0
  378. package/lib/typescript/src/web/{variants/getVariants.d.ts → variants.d.ts} +2 -2
  379. package/lib/typescript/src/web/variants.d.ts.map +1 -0
  380. package/nitrogen/generated/android/c++/JColorScheme.hpp +2 -2
  381. package/nitrogen/generated/android/c++/JFunc_void_UnistylesNativeMiniRuntime.hpp +57 -0
  382. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.hpp +69 -0
  383. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +35 -34
  384. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +15 -6
  385. package/nitrogen/generated/android/c++/JOrientation.hpp +2 -2
  386. package/nitrogen/generated/android/c++/JUnistyleDependency.hpp +5 -2
  387. package/nitrogen/generated/android/c++/JUnistylesNativeMiniRuntime.hpp +9 -7
  388. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/ColorScheme.kt +5 -1
  389. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Dimensions.kt +1 -0
  390. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/{Func_void_std__vector_UnistyleDependency_.kt → Func_void_UnistylesNativeMiniRuntime.kt} +6 -5
  391. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime.kt +46 -0
  392. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +25 -13
  393. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Insets.kt +1 -0
  394. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Orientation.kt +5 -1
  395. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistyleDependency.kt +6 -1
  396. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +3 -1
  397. package/nitrogen/generated/android/unistyles+autolinking.cmake +13 -1
  398. package/nitrogen/generated/android/unistyles+autolinking.gradle +2 -0
  399. package/nitrogen/generated/android/{UnistylesOnLoad.cpp → unistylesOnLoad.cpp} +6 -4
  400. package/nitrogen/generated/android/{UnistylesOnLoad.hpp → unistylesOnLoad.hpp} +1 -1
  401. package/nitrogen/generated/ios/Unistyles+autolinking.rb +6 -4
  402. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +25 -0
  403. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +73 -38
  404. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +1 -30
  405. package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +8 -8
  406. package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +4 -16
  407. package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +156 -115
  408. package/nitrogen/generated/ios/swift/UnistyleDependency.swift +4 -0
  409. package/nitrogen/generated/ios/swift/UnistylesNativeMiniRuntime.swift +16 -5
  410. package/nitrogen/generated/shared/c++/ColorScheme.hpp +2 -2
  411. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.cpp +2 -2
  412. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +6 -3
  413. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.cpp +0 -1
  414. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +3 -1
  415. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.cpp +1 -0
  416. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +5 -0
  417. package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +3 -0
  418. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.cpp +0 -1
  419. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +3 -1
  420. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.cpp +2 -1
  421. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +10 -4
  422. package/nitrogen/generated/shared/c++/Orientation.hpp +2 -2
  423. package/nitrogen/generated/shared/c++/UnistyleDependency.hpp +2 -1
  424. package/nitrogen/generated/shared/c++/UnistylesCxxMiniRuntime.hpp +10 -9
  425. package/nitrogen/generated/shared/c++/UnistylesNativeMiniRuntime.hpp +9 -8
  426. package/package.json +24 -37
  427. package/plugin/common.js +27 -2
  428. package/plugin/import.js +29 -3
  429. package/plugin/index.js +104 -15
  430. package/plugin/ref.js +50 -16
  431. package/plugin/style.js +443 -9
  432. package/plugin/stylesheet.js +10 -3
  433. package/src/components/Display.tsx +12 -0
  434. package/src/components/Hide.tsx +12 -0
  435. package/src/components/Pressable.tsx +89 -0
  436. package/src/components/Pressable.web.tsx +129 -0
  437. package/src/components/index.ts +3 -0
  438. package/src/core/createUnistylesComponent.native.tsx +83 -0
  439. package/src/core/createUnistylesComponent.tsx +84 -0
  440. package/src/core/getBoundArgs.ts +15 -0
  441. package/src/core/getId.ts +1 -0
  442. package/src/core/index.ts +3 -0
  443. package/src/hooks/index.ts +1 -0
  444. package/src/hooks/useMedia.ts +64 -0
  445. package/src/hooks/useMedia.web.ts +47 -0
  446. package/src/index.ts +3 -12
  447. package/src/mq.ts +33 -15
  448. package/src/specs/NativePlatform/NativePlatform.nitro.ts +8 -6
  449. package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.ts +0 -1
  450. package/src/specs/NavigtionBar/index.ts +1 -25
  451. package/src/specs/ShadowRegistry/index.ts +17 -12
  452. package/src/specs/ShadowRegistry/types.ts +6 -2
  453. package/src/specs/StatusBar/UnistylesStatusBar.nitro.ts +0 -1
  454. package/src/specs/StatusBar/index.ts +2 -12
  455. package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.ts +4 -1
  456. package/src/specs/StyleSheet/index.ts +7 -3
  457. package/src/specs/TurboUnistyles/NativeTurboUnistyles.ts +1 -2
  458. package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +2 -2
  459. package/src/specs/UnistylesRuntime/index.ts +4 -3
  460. package/src/specs/index.ts +6 -2
  461. package/src/specs/index.web.ts +0 -4
  462. package/src/types/breakpoints.ts +25 -13
  463. package/src/types/common.ts +2 -0
  464. package/src/types/index.ts +2 -2
  465. package/src/types/stylesheet.ts +7 -5
  466. package/src/types/variants.ts +7 -1
  467. package/src/utils.ts +22 -0
  468. package/src/web/convert/index.ts +24 -24
  469. package/src/web/convert/object/boxShadow.ts +55 -0
  470. package/src/web/convert/object/filter.ts +39 -0
  471. package/src/web/convert/object/index.ts +3 -0
  472. package/src/web/convert/object/objectStyle.ts +69 -0
  473. package/src/web/convert/object/transform.ts +24 -0
  474. package/src/web/convert/pseudo.ts +137 -0
  475. package/src/web/convert/shadow/boxShadow.ts +50 -0
  476. package/src/web/convert/shadow/getShadowBreakpoints.ts +34 -0
  477. package/src/web/convert/shadow/index.ts +2 -0
  478. package/src/web/convert/shadow/textShadow.ts +48 -0
  479. package/src/web/convert/style.ts +61 -10
  480. package/src/web/convert/types.ts +8 -1
  481. package/src/web/convert/utils.ts +13 -7
  482. package/src/web/create.ts +35 -83
  483. package/src/web/index.ts +9 -4
  484. package/src/web/listener.ts +65 -0
  485. package/src/web/mock.ts +1 -12
  486. package/src/web/registry.ts +202 -28
  487. package/src/web/runtime.ts +29 -18
  488. package/src/web/shadowRegistry.ts +149 -0
  489. package/src/web/state.ts +52 -87
  490. package/src/web/utils/common.ts +45 -0
  491. package/src/web/utils/index.ts +2 -0
  492. package/src/web/utils/unistyle.ts +94 -0
  493. package/src/web/{variants/getVariants.ts → variants.ts} +2 -2
  494. package/android/src/main/cxx/helpers.cpp +0 -105
  495. package/android/src/main/cxx/helpers.h +0 -16
  496. package/android/src/main/cxx/platform.cpp +0 -170
  497. package/android/src/main/cxx/platform.h +0 -20
  498. package/lib/commonjs/web/convert/boxShadow.js.map +0 -1
  499. package/lib/commonjs/web/convert/breakpoint.js +0 -25
  500. package/lib/commonjs/web/convert/breakpoint.js.map +0 -1
  501. package/lib/commonjs/web/convert/shadow.js +0 -68
  502. package/lib/commonjs/web/convert/shadow.js.map +0 -1
  503. package/lib/commonjs/web/convert/textShadow.js.map +0 -1
  504. package/lib/commonjs/web/convert/transform.js +0 -72
  505. package/lib/commonjs/web/convert/transform.js.map +0 -1
  506. package/lib/commonjs/web/listener/index.js +0 -13
  507. package/lib/commonjs/web/listener/index.js.map +0 -1
  508. package/lib/commonjs/web/listener/listener.js +0 -36
  509. package/lib/commonjs/web/listener/listener.js.map +0 -1
  510. package/lib/commonjs/web/mq.js +0 -23
  511. package/lib/commonjs/web/mq.js.map +0 -1
  512. package/lib/commonjs/web/pseudo.js +0 -11
  513. package/lib/commonjs/web/pseudo.js.map +0 -1
  514. package/lib/commonjs/web/utils.js +0 -78
  515. package/lib/commonjs/web/utils.js.map +0 -1
  516. package/lib/commonjs/web/variants/getVariants.js.map +0 -1
  517. package/lib/commonjs/web/variants/index.js +0 -28
  518. package/lib/commonjs/web/variants/index.js.map +0 -1
  519. package/lib/commonjs/web/variants/useVariants.js +0 -75
  520. package/lib/commonjs/web/variants/useVariants.js.map +0 -1
  521. package/lib/module/web/convert/boxShadow.js +0 -72
  522. package/lib/module/web/convert/boxShadow.js.map +0 -1
  523. package/lib/module/web/convert/breakpoint.js +0 -20
  524. package/lib/module/web/convert/breakpoint.js.map +0 -1
  525. package/lib/module/web/convert/shadow.js +0 -63
  526. package/lib/module/web/convert/shadow.js.map +0 -1
  527. package/lib/module/web/convert/textShadow.js +0 -68
  528. package/lib/module/web/convert/textShadow.js.map +0 -1
  529. package/lib/module/web/convert/transform.js +0 -67
  530. package/lib/module/web/convert/transform.js.map +0 -1
  531. package/lib/module/web/listener/index.js +0 -4
  532. package/lib/module/web/listener/index.js.map +0 -1
  533. package/lib/module/web/listener/listener.js +0 -31
  534. package/lib/module/web/listener/listener.js.map +0 -1
  535. package/lib/module/web/mq.js +0 -17
  536. package/lib/module/web/mq.js.map +0 -1
  537. package/lib/module/web/pseudo.js +0 -6
  538. package/lib/module/web/pseudo.js.map +0 -1
  539. package/lib/module/web/utils.js +0 -65
  540. package/lib/module/web/utils.js.map +0 -1
  541. package/lib/module/web/variants/getVariants.js.map +0 -1
  542. package/lib/module/web/variants/index.js +0 -5
  543. package/lib/module/web/variants/index.js.map +0 -1
  544. package/lib/module/web/variants/useVariants.js +0 -70
  545. package/lib/module/web/variants/useVariants.js.map +0 -1
  546. package/lib/typescript/example/App.d.ts +0 -4
  547. package/lib/typescript/example/App.d.ts.map +0 -1
  548. package/lib/typescript/example/Typography.d.ts +0 -11
  549. package/lib/typescript/example/Typography.d.ts.map +0 -1
  550. package/lib/typescript/example/unistyles.d.ts +0 -63
  551. package/lib/typescript/example/unistyles.d.ts.map +0 -1
  552. package/lib/typescript/expo-example/App.d.ts +0 -4
  553. package/lib/typescript/expo-example/App.d.ts.map +0 -1
  554. package/lib/typescript/expo-example/unistyles.d.ts +0 -63
  555. package/lib/typescript/expo-example/unistyles.d.ts.map +0 -1
  556. package/lib/typescript/src/web/convert/boxShadow.d.ts +0 -3
  557. package/lib/typescript/src/web/convert/boxShadow.d.ts.map +0 -1
  558. package/lib/typescript/src/web/convert/breakpoint.d.ts +0 -3
  559. package/lib/typescript/src/web/convert/breakpoint.d.ts.map +0 -1
  560. package/lib/typescript/src/web/convert/shadow.d.ts +0 -2
  561. package/lib/typescript/src/web/convert/shadow.d.ts.map +0 -1
  562. package/lib/typescript/src/web/convert/textShadow.d.ts +0 -3
  563. package/lib/typescript/src/web/convert/textShadow.d.ts.map +0 -1
  564. package/lib/typescript/src/web/convert/transform.d.ts +0 -5
  565. package/lib/typescript/src/web/convert/transform.d.ts.map +0 -1
  566. package/lib/typescript/src/web/listener/index.d.ts +0 -2
  567. package/lib/typescript/src/web/listener/index.d.ts.map +0 -1
  568. package/lib/typescript/src/web/listener/listener.d.ts.map +0 -1
  569. package/lib/typescript/src/web/mq.d.ts +0 -4
  570. package/lib/typescript/src/web/mq.d.ts.map +0 -1
  571. package/lib/typescript/src/web/pseudo.d.ts +0 -4
  572. package/lib/typescript/src/web/pseudo.d.ts.map +0 -1
  573. package/lib/typescript/src/web/utils.d.ts +0 -20
  574. package/lib/typescript/src/web/utils.d.ts.map +0 -1
  575. package/lib/typescript/src/web/variants/getVariants.d.ts.map +0 -1
  576. package/lib/typescript/src/web/variants/index.d.ts +0 -3
  577. package/lib/typescript/src/web/variants/index.d.ts.map +0 -1
  578. package/lib/typescript/src/web/variants/useVariants.d.ts +0 -3
  579. package/lib/typescript/src/web/variants/useVariants.d.ts.map +0 -1
  580. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency_.hpp +0 -60
  581. package/plugin/__tests__/dependencies.spec.js +0 -438
  582. package/plugin/__tests__/ref.spec.js +0 -1170
  583. package/plugin/__tests__/stylesheet.spec.js +0 -489
  584. package/src/web/convert/boxShadow.ts +0 -72
  585. package/src/web/convert/breakpoint.ts +0 -21
  586. package/src/web/convert/shadow.ts +0 -68
  587. package/src/web/convert/textShadow.ts +0 -69
  588. package/src/web/convert/transform.ts +0 -89
  589. package/src/web/listener/index.ts +0 -1
  590. package/src/web/listener/listener.ts +0 -33
  591. package/src/web/mq.ts +0 -19
  592. package/src/web/pseudo.ts +0 -11
  593. package/src/web/utils.ts +0 -95
  594. package/src/web/variants/index.ts +0 -2
  595. package/src/web/variants/useVariants.ts +0 -79
  596. /package/nitrogen/generated/android/{UnistylesOnLoad.kt → unistylesOnLoad.kt} +0 -0
@@ -1,11 +1,13 @@
1
1
  import Foundation
2
2
 
3
3
  extension UIColor {
4
+ // int is universal way of color representation
5
+ // iOS API expects UIColor, so we need to translate it
4
6
  public static func fromInt(_ color: Int) -> UIColor {
5
7
  let red = CGFloat((color >> 16) & 0xFF) / 255.0
6
8
  let green = CGFloat((color >> 8) & 0xFF) / 255.0
7
9
  let blue = CGFloat(color & 0xFF) / 255.0
8
-
10
+
9
11
  return UIColor(red: red, green: green, blue: blue, alpha: 1.0)
10
12
  }
11
13
  }
@@ -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>, UnistylesNativeMiniRuntime) -> Void
8
+ typealias CxxImeListener = (UnistylesNativeMiniRuntime) -> 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
 
@@ -177,18 +187,35 @@ class NativeIOSPlatform: HybridNativePlatformSpec {
177
187
  return getContentSizeCategoryFn()
178
188
  }
179
189
  }
190
+
191
+ func getMainWindow() -> UIWindow? {
192
+ guard let mainWindow = UIApplication.shared.connectedScenes
193
+ .compactMap({ $0 as? UIWindowScene })
194
+ .flatMap({ $0.windows })
195
+ .first(where: { $0.isKeyWindow }) else {
196
+ return nil
197
+ }
198
+
199
+ return mainWindow
200
+ }
180
201
 
181
202
  // todo handle IME animation
182
203
  func getInsets() -> Insets {
183
204
  func getInsetsFn() -> Insets {
184
- guard let window = UIApplication.shared.windows.first else {
205
+ guard let window = getMainWindow() else {
185
206
  // this should never happen, but it's better to return zeros
186
207
  return Insets(top: 0, bottom: 0, left: 0, right: 0, ime: 0)
187
208
  }
188
209
 
189
210
  let safeArea = window.safeAreaInsets
190
211
 
191
- return Insets(top: safeArea.top, bottom: safeArea.bottom, left: safeArea.left, right: safeArea.right, ime: 0)
212
+ return Insets(
213
+ top: safeArea.top,
214
+ bottom: safeArea.bottom,
215
+ left: safeArea.left,
216
+ right: safeArea.right,
217
+ ime: keyboardAnimation.animatedImeInset
218
+ )
192
219
  }
193
220
 
194
221
  if Thread.isMainThread {
@@ -219,7 +246,7 @@ class NativeIOSPlatform: HybridNativePlatformSpec {
219
246
 
220
247
  func getStatusBarDimensions() -> Dimensions {
221
248
  func getStatusBarDimensionsFn() -> Dimensions {
222
- guard let window = UIApplication.shared.windows.first,
249
+ guard let window = getMainWindow(),
223
250
  let statusBarManager = window.windowScene?.statusBarManager else {
224
251
  // this should never happen, but it's better to return defaults
225
252
  return Dimensions(width: 0, height: 0)
@@ -274,15 +301,13 @@ class NativeIOSPlatform: HybridNativePlatformSpec {
274
301
  func getNavigationBarDimensions() -> Dimensions {
275
302
  return Dimensions(width: 0, height: 0);
276
303
  }
277
-
304
+
278
305
  func setStatusBarHidden(isHidden: Bool) throws {
279
306
  self.onWindowChange(Notification(name: NSNotification.Name("RCTWindowFrameDidChangeNotification")))
280
307
  }
281
308
 
282
309
  // not implemented for iOS as there are no such APIs
283
- func setNavigationBarBackgroundColor(color: Double) throws {}
284
310
  func setNavigationBarHidden(isHidden: Bool) throws {}
285
- func setStatusBarBackgroundColor(color: Double) throws {}
286
311
 
287
312
  // implemented from JS
288
313
  func setImmersiveMode(isEnabled: Bool) throws {}
@@ -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.miniRuntime?.insets.ime = keyboardAnimation.animatedImeInset
76
+ self.emitImeEvent(updatedMiniRuntime: self.miniRuntime!)
77
+
78
+ if linearProgress >= 1 {
79
+ keyboardAnimation.displayLink?.invalidate()
80
+ keyboardAnimation.displayLink = nil
81
+ }
82
+ }
83
+ }
@@ -2,40 +2,52 @@ 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
+ .delay(for: .milliseconds(10), scheduler: RunLoop.current)
8
+ .sink { [weak self] notification in
9
+ self?.onWindowChange(notification)
10
+ }
11
+ .store(in: &cancellables)
11
12
  }
12
13
 
13
14
  func removePlatformListeners() {
14
- NotificationCenter.default.removeObserver(self, name: NSNotification.Name("RCTWindowFrameDidChangeNotification"), object: nil)
15
+ self.unregisterPlatformListeners()
16
+ }
17
+
18
+ func registerPlatformListener(callback: @escaping (CxxDependencyListener)) throws {
19
+ self.dependencyListeners.append(callback)
15
20
  }
16
21
 
17
- func registerPlatformListener(callback: @escaping (CxxListener)) throws {
18
- listeners.append(callback)
22
+ func registerImeListener(callback: @escaping ((UnistylesNativeMiniRuntime) -> Void)) throws {
23
+ self.imeListeners.append(callback)
19
24
  }
20
25
 
21
- func emitCxxEvent(dependencies: Array<UnistyleDependency>) {
22
- self.listeners.forEach { $0(dependencies) }
26
+ func emitCxxEvent(dependencies: Array<UnistyleDependency>, updatedMiniRuntime: UnistylesNativeMiniRuntime) {
27
+ self.dependencyListeners.forEach { $0(dependencies, updatedMiniRuntime) }
28
+ }
29
+
30
+ func emitImeEvent(updatedMiniRuntime: UnistylesNativeMiniRuntime) {
31
+ self.imeListeners.forEach { $0(updatedMiniRuntime) }
32
+ }
33
+
34
+ func unregisterPlatformListeners() {
35
+ cancellables.removeAll()
36
+ dependencyListeners.removeAll()
37
+ imeListeners.removeAll()
23
38
  }
24
39
 
25
40
  @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
- }
41
+ guard let currentMiniRuntime = self.miniRuntime else {
42
+ return
43
+ }
44
+
45
+ let newMiniRuntime = self.buildMiniRuntime()
46
+ let changedDependencies = UnistylesNativeMiniRuntime.diff(lhs: currentMiniRuntime, rhs: newMiniRuntime)
47
+
48
+ if (changedDependencies.count > 0) {
49
+ self.miniRuntime = newMiniRuntime
50
+ self.emitCxxEvent(dependencies: changedDependencies, updatedMiniRuntime: newMiniRuntime)
39
51
  }
40
52
  }
41
53
  }
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,19 @@
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
+
3
7
  #import <React/RCTEventEmitter.h>
4
- #import <ReactCommon/RCTTurboModuleWithJSIBindings.h>
5
8
  #import "TurboUnistyles/TurboUnistyles.h"
6
9
  #import <React/RCTSurfacePresenter.h>
7
10
  #import <React/RCTScheduler.h>
11
+ #import <React/RCTRuntimeExecutorModule.h>
12
+ #import <ReactCommon/RCTRuntimeExecutor.h>
13
+ #import <ReactCommon/RCTTurboModuleWithJSIBindings.h>
8
14
 
9
15
  @interface UnistylesModule: RCTEventEmitter<NativeTurboUnistylesSpec>
10
16
  @end
11
17
 
12
- @interface UnistylesModule()<RCTTurboModuleWithJSIBindings>
18
+ @interface UnistylesModule()<RCTTurboModuleWithJSIBindings, RCTRuntimeExecutorModule>
13
19
  @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;
@@ -35,8 +36,15 @@ __weak RCTSurfacePresenter* _surfacePresenter;
35
36
  }
36
37
 
37
38
  - (void)createHybrids:(jsi::Runtime&)rt {
39
+ auto runOnJSThread = ([executor = _runtimeExecutor](std::function<void(jsi::Runtime& rt)> &&callback) {
40
+ __block auto objcCallback = callback;
41
+
42
+ [executor execute:^(jsi::Runtime& rt){
43
+ objcCallback(rt);
44
+ }];
45
+ });
38
46
  auto nativePlatform = Unistyles::NativePlatform::create();
39
- auto unistylesRuntime = std::make_shared<HybridUnistylesRuntime>(nativePlatform, rt);
47
+ auto unistylesRuntime = std::make_shared<HybridUnistylesRuntime>(nativePlatform, rt, runOnJSThread);
40
48
  auto uiManager = [_surfacePresenter scheduler].uiManager;
41
49
  auto styleSheet = std::make_shared<HybridStyleSheet>(unistylesRuntime, uiManager);
42
50
 
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Display = void 0;
7
+ var _hooks = require("../hooks");
8
+ const Display = ({
9
+ children,
10
+ ...props
11
+ }) => {
12
+ const {
13
+ isVisible
14
+ } = (0, _hooks.useMedia)(props);
15
+ return isVisible ? children : null;
16
+ };
17
+ exports.Display = Display;
18
+ //# sourceMappingURL=Display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_hooks","require","Display","children","props","isVisible","useMedia","exports"],"sourceRoot":"../../../src","sources":["components/Display.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAIO,MAAMC,OAA8C,GAAGA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,KAAK;EACtF,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,eAAQ,EAACF,KAAK,CAAC;EAErC,OAAOC,SAAS,GACVF,QAAQ,GACR,IAAI;AACd,CAAC;AAAAI,OAAA,CAAAL,OAAA,GAAAA,OAAA","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Hide = void 0;
7
+ var _hooks = require("../hooks");
8
+ const Hide = ({
9
+ children,
10
+ ...props
11
+ }) => {
12
+ const {
13
+ isVisible
14
+ } = (0, _hooks.useMedia)(props);
15
+ return !isVisible ? children : null;
16
+ };
17
+ exports.Hide = Hide;
18
+ //# sourceMappingURL=Hide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_hooks","require","Hide","children","props","isVisible","useMedia","exports"],"sourceRoot":"../../../src","sources":["components/Hide.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAIO,MAAMC,IAAwC,GAAGA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,KAAK;EAChF,MAAM;IAAEC;EAAU,CAAC,GAAG,IAAAC,eAAQ,EAACF,KAAK,CAAC;EAErC,OAAO,CAACC,SAAS,GACXF,QAAQ,GACR,IAAI;AACd,CAAC;AAAAI,OAAA,CAAAL,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Pressable = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _specs = require("../specs");
10
+ var _core = require("../core");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ 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); }
13
+ 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; }
14
+ const Pressable = exports.Pressable = /*#__PURE__*/(0, _react.forwardRef)(({
15
+ variants,
16
+ style,
17
+ rawStyle,
18
+ ...props
19
+ }, passedRef) => {
20
+ const storedRef = (0, _react.useRef)();
21
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
22
+ ...props,
23
+ ref: ref => {
24
+ storedRef.current = ref;
25
+ const styleResult = typeof style === 'function' ? style({
26
+ pressed: false
27
+ }) : style;
28
+ const fnArgs = typeof styleResult === 'function'
29
+ // @ts-expect-error - this is hidden from TS
30
+ ? styleResult.getBoundArgs() : Array.isArray(styleResult) ? styleResult
31
+ // @ts-expect-error - this is hidden from TS
32
+ .map(style => typeof style === 'function' ? style.getBoundArgs() : []) : [];
33
+ if (typeof passedRef === 'object' && passedRef !== null) {
34
+ passedRef.current = ref;
35
+ }
36
+ const returnFn = typeof passedRef === 'function' ? passedRef(ref) : () => {};
37
+ const unistyles = typeof rawStyle === 'function' ? rawStyle({
38
+ pressed: false
39
+ }) : rawStyle ?? [];
40
+
41
+ // @ts-expect-error - this is hidden from TS
42
+ _specs.UnistylesShadowRegistry.add(ref, unistyles, variants, Array.isArray(styleResult) ? fnArgs : [fnArgs]);
43
+ return () => {
44
+ // @ts-expect-error - this is hidden from TS
45
+ _specs.UnistylesShadowRegistry.remove(ref);
46
+ if (typeof returnFn === 'function') {
47
+ returnFn();
48
+ }
49
+ };
50
+ },
51
+ style: state => {
52
+ const styleResult = typeof style === 'function' ? style(state) : style;
53
+ const fnArgs = typeof styleResult === 'function'
54
+ // @ts-expect-error - this is hidden from TS
55
+ ? styleResult.getBoundArgs() : Array.isArray(styleResult) ? styleResult
56
+ // @ts-expect-error - this is hidden from TS
57
+ .map(style => typeof style === 'function' ? style.getBoundArgs() : []) : [];
58
+ const pressId = (0, _core.getId)();
59
+ const unistyles = typeof rawStyle === 'function' ? rawStyle(state) : rawStyle ?? [];
60
+ if (storedRef.current) {
61
+ // @ts-expect-error - this is hidden from TS
62
+ _specs.UnistylesShadowRegistry.remove(storedRef.current);
63
+ // @ts-expect-error - this is hidden from TS
64
+ _specs.UnistylesShadowRegistry.add(storedRef.current, unistyles, variants, Array.isArray(styleResult) ? fnArgs : [fnArgs], pressId);
65
+ }
66
+ return typeof styleResult === 'function'
67
+ // @ts-expect-error - this is hidden from TS
68
+ ? styleResult(pressId) : Array.isArray(styleResult)
69
+ // @ts-expect-error - this is hidden from TS
70
+ ? styleResult.map(style => typeof style === 'function' ? style(pressId) : style) : styleResult;
71
+ }
72
+ });
73
+ });
74
+ //# sourceMappingURL=Pressable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_specs","_core","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Pressable","exports","forwardRef","variants","style","rawStyle","props","passedRef","storedRef","useRef","jsx","ref","current","styleResult","pressed","fnArgs","getBoundArgs","Array","isArray","map","returnFn","unistyles","UnistylesShadowRegistry","add","remove","state","pressId","getId"],"sourceRoot":"../../../src","sources":["components/Pressable.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAA+B,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAK,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,SAAAP,wBAAAO,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;AAOxB,MAAMW,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAAG,IAAAE,iBAAU,EAAuB,CAAC;EAAEC,QAAQ;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,SAAS,KAAK;EAC9G,MAAMC,SAAS,GAAG,IAAAC,aAAM,EAAc,CAAC;EAEvC,oBACI,IAAA9B,WAAA,CAAA+B,GAAA,EAAClC,YAAA,CAAAwB,SAA0B;IAAA,GACnBM,KAAK;IACTK,GAAG,EAAEA,GAAG,IAAI;MACRH,SAAS,CAACI,OAAO,GAAGD,GAAG;MACvB,MAAME,WAAW,GAAG,OAAOT,KAAK,KAAK,UAAU,GACzCA,KAAK,CAAC;QAAEU,OAAO,EAAE;MAAM,CAAC,CAAC,GACzBV,KAAK;MACX,MAAMW,MAAM,GAAG,OAAOF,WAAW,KAAK;MAClC;MAAA,EACEA,WAAW,CAACG,YAAY,CAAC,CAAC,GAC1BC,KAAK,CAACC,OAAO,CAACL,WAAW,CAAC,GACtBA;MACE;MAAA,CACCM,GAAG,CAACf,KAAK,IAAI,OAAOA,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACY,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,GACxE,EAAE;MAEZ,IAAI,OAAOT,SAAS,KAAK,QAAQ,IAAIA,SAAS,KAAK,IAAI,EAAE;QACrDA,SAAS,CAACK,OAAO,GAAGD,GAAG;MAC3B;MAEA,MAAMS,QAAQ,GAAG,OAAOb,SAAS,KAAK,UAAU,GAC1CA,SAAS,CAACI,GAAG,CAAC,GACd,MAAM,CAAC,CAAC;MACd,MAAMU,SAAS,GAAG,OAAOhB,QAAQ,KAAK,UAAU,GAC1CA,QAAQ,CAAC;QAAES,OAAO,EAAE;MAAM,CAAC,CAAC,GAC3BT,QAAQ,IAAI,EAAG;;MAEtB;MACAiB,8BAAuB,CAACC,GAAG,CAACZ,GAAG,EAAEU,SAAS,EAAElB,QAAQ,EAAEc,KAAK,CAACC,OAAO,CAACL,WAAW,CAAC,GAAGE,MAAM,GAAG,CAACA,MAAM,CAAC,CAAC;MAErG,OAAO,MAAM;QACT;QACAO,8BAAuB,CAACE,MAAM,CAACb,GAAG,CAAC;QAEnC,IAAI,OAAOS,QAAQ,KAAK,UAAU,EAAE;UAChCA,QAAQ,CAAC,CAAC;QACd;MACJ,CAAC;IACL,CAAE;IACFhB,KAAK,EAAEqB,KAAK,IAAI;MACZ,MAAMZ,WAAW,GAAG,OAAOT,KAAK,KAAK,UAAU,GACzCA,KAAK,CAACqB,KAAK,CAAC,GACZrB,KAAK;MACX,MAAMW,MAAM,GAAG,OAAOF,WAAW,KAAK;MAClC;MAAA,EACEA,WAAW,CAACG,YAAY,CAAC,CAAC,GAC1BC,KAAK,CAACC,OAAO,CAACL,WAAW,CAAC,GACtBA;MACE;MAAA,CACCM,GAAG,CAACf,KAAK,IAAI,OAAOA,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACY,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,GACxE,EAAE;MACZ,MAAMU,OAAO,GAAG,IAAAC,WAAK,EAAC,CAAC;MACvB,MAAMN,SAAS,GAAG,OAAOhB,QAAQ,KAAK,UAAU,GAC1CA,QAAQ,CAACoB,KAAK,CAAC,GACdpB,QAAQ,IAAI,EAAG;MAEtB,IAAIG,SAAS,CAACI,OAAO,EAAE;QACnB;QACAU,8BAAuB,CAACE,MAAM,CAAChB,SAAS,CAACI,OAAO,CAAC;QACjD;QACAU,8BAAuB,CAACC,GAAG,CAACf,SAAS,CAACI,OAAO,EAAES,SAAS,EAAElB,QAAQ,EAAEc,KAAK,CAACC,OAAO,CAACL,WAAW,CAAC,GAAGE,MAAM,GAAG,CAACA,MAAM,CAAC,EAAEW,OAAO,CAAC;MAChI;MAEA,OAAO,OAAOb,WAAW,KAAK;MAC1B;MAAA,EACEA,WAAW,CAACa,OAAO,CAAC,GACpBT,KAAK,CAACC,OAAO,CAACL,WAAW;MACvB;MAAA,EACEA,WAAW,CAACM,GAAG,CAACf,KAAK,IAAI,OAAOA,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACsB,OAAO,CAAC,GAAGtB,KAAK,CAAC,GAC9ES,WAAW;IACzB;EAAE,CACL,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Pressable = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _specs = require("../specs");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ 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); }
12
+ 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; }
13
+ const initialState = {
14
+ pressed: false,
15
+ hovered: false,
16
+ focused: false
17
+ };
18
+ const events = {
19
+ 'pointerdown': {
20
+ pressed: true
21
+ },
22
+ 'pointerup': {
23
+ pressed: false
24
+ },
25
+ 'pointerenter': {
26
+ hovered: true
27
+ },
28
+ 'pointerleave': {
29
+ hovered: false
30
+ },
31
+ 'focus': {
32
+ focused: true
33
+ },
34
+ 'blur': {
35
+ focused: false
36
+ }
37
+ };
38
+ const isFunctionWithBoundArgs = fn => {
39
+ return typeof fn === 'function' && 'getBoundArgs' in fn;
40
+ };
41
+ const extractFunctionArgs = styleResult => {
42
+ return isFunctionWithBoundArgs(styleResult) ? [styleResult.getBoundArgs()] : Array.isArray(styleResult) ? styleResult.map(style => isFunctionWithBoundArgs(style) ? style.getBoundArgs() : []) : [];
43
+ };
44
+ const extractStyleResult = style => {
45
+ return typeof style === 'function' ? [style()] : Array.isArray(style) ? style.map(style => typeof style === 'function' ? style() : style) : [style];
46
+ };
47
+ const updateStyles = ({
48
+ ref,
49
+ style,
50
+ variants,
51
+ state
52
+ }) => {
53
+ const styleResult = typeof style === 'function' ? style(state) : style;
54
+ const fnArgs = extractFunctionArgs(styleResult);
55
+ const extractedResult = extractStyleResult(styleResult);
56
+
57
+ // @ts-expect-error - this is hidden from TS
58
+ _specs.UnistylesShadowRegistry.add(ref, extractedResult, variants, fnArgs);
59
+ };
60
+ const Pressable = exports.Pressable = /*#__PURE__*/(0, _react.forwardRef)(({
61
+ variants,
62
+ style,
63
+ ...props
64
+ }, passedRef) => {
65
+ const storedRef = (0, _react.useRef)(null);
66
+ const state = (0, _react.useRef)(initialState);
67
+ const styleRef = (0, _react.useRef)(style);
68
+ (0, _react.useEffect)(() => {
69
+ styleRef.current = style;
70
+ }, [style]);
71
+ (0, _react.useEffect)(() => {
72
+ const handler = newState => () => {
73
+ state.current = {
74
+ ...state.current,
75
+ ...newState
76
+ };
77
+ updateStyles({
78
+ ref: storedRef.current,
79
+ style: styleRef.current,
80
+ variants,
81
+ state: state.current
82
+ });
83
+ };
84
+ if (!storedRef.current) {
85
+ return;
86
+ }
87
+
88
+ // ref on the web is dom element
89
+ const ref = storedRef.current;
90
+ Object.entries(events).forEach(([event, state]) => {
91
+ ref.addEventListener(event, handler(state));
92
+ });
93
+ return () => {
94
+ Object.entries(events).forEach(([event, state]) => {
95
+ ref.removeEventListener(event, handler(state));
96
+ });
97
+ };
98
+ }, []);
99
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
100
+ ...props,
101
+ ref: ref => {
102
+ storedRef.current = ref;
103
+ updateStyles({
104
+ ref,
105
+ style: style,
106
+ variants,
107
+ state: initialState
108
+ });
109
+ if (typeof passedRef === 'object' && passedRef !== null) {
110
+ passedRef.current = ref;
111
+ }
112
+ }
113
+ });
114
+ });
115
+ //# sourceMappingURL=Pressable.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_specs","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","initialState","pressed","hovered","focused","events","isFunctionWithBoundArgs","fn","extractFunctionArgs","styleResult","getBoundArgs","Array","isArray","map","style","extractStyleResult","updateStyles","ref","variants","state","fnArgs","extractedResult","UnistylesShadowRegistry","add","Pressable","exports","forwardRef","props","passedRef","storedRef","useRef","styleRef","useEffect","current","handler","newState","entries","forEach","event","addEventListener","removeEventListener","jsx"],"sourceRoot":"../../../src","sources":["components/Pressable.web.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAAkD,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAI,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,SAAAN,wBAAAM,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;AAelD,MAAMW,YAA+B,GAAG;EACpCC,OAAO,EAAE,KAAK;EACdC,OAAO,EAAE,KAAK;EACdC,OAAO,EAAE;AACb,CAAC;AAED,MAAMC,MAAM,GAAG;EACX,aAAa,EAAE;IAAEH,OAAO,EAAE;EAAK,CAAC;EAChC,WAAW,EAAE;IAAEA,OAAO,EAAE;EAAM,CAAC;EAC/B,cAAc,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAC;EACjC,cAAc,EAAE;IAAEA,OAAO,EAAE;EAAM,CAAC;EAClC,OAAO,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAC;EAC1B,MAAM,EAAE;IAAEA,OAAO,EAAE;EAAM;AAC7B,CAAkF;AASlF,MAAME,uBAAuB,GAAIC,EAAO,IAAkD;EACtF,OAAO,OAAOA,EAAE,KAAK,UAAU,IAAI,cAAc,IAAIA,EAAE;AAC3D,CAAC;AAED,MAAMC,mBAAmB,GAAIC,WAAgB,IAAK;EAC9C,OAAOH,uBAAuB,CAACG,WAAW,CAAC,GACrC,CAACA,WAAW,CAACC,YAAY,CAAC,CAAC,CAAC,GAC5BC,KAAK,CAACC,OAAO,CAACH,WAAW,CAAC,GACtBA,WAAW,CAACI,GAAG,CAACC,KAAK,IAAIR,uBAAuB,CAACQ,KAAK,CAAC,GAAGA,KAAK,CAACJ,YAAY,CAAC,CAAC,GAAG,EAAE,CAAC,GACpF,EAAE;AAChB,CAAC;AAED,MAAMK,kBAAkB,GAAID,KAAU,IAAK;EACvC,OAAO,OAAOA,KAAK,KAAK,UAAU,GAC5B,CAACA,KAAK,CAAC,CAAC,CAAC,GACTH,KAAK,CAACC,OAAO,CAACE,KAAK,CAAC,GAChBA,KAAK,CAACD,GAAG,CAACC,KAAK,IAAI,OAAOA,KAAK,KAAK,UAAU,GAAGA,KAAK,CAAC,CAAC,GAAGA,KAAK,CAAC,GACjE,CAACA,KAAK,CAAC;AACrB,CAAC;AAED,MAAME,YAAY,GAAGA,CAAC;EAAEC,GAAG;EAAEH,KAAK;EAAEI,QAAQ;EAAEC;AAAyB,CAAC,KAAK;EACzE,MAAMV,WAAW,GAAG,OAAOK,KAAK,KAAK,UAAU,GACzCA,KAAK,CAACK,KAAK,CAAC,GACZL,KAAK;EACX,MAAMM,MAAM,GAAGZ,mBAAmB,CAACC,WAAW,CAAC;EAC/C,MAAMY,eAAe,GAAGN,kBAAkB,CAACN,WAAW,CAAC;;EAEvD;EACAa,8BAAuB,CAACC,GAAG,CAACN,GAAG,EAAEI,eAAe,EAAEH,QAAQ,EAAEE,MAAM,CAAC;AACvE,CAAC;AAEM,MAAMI,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAAG,IAAAE,iBAAU,EAAuB,CAAC;EAAER,QAAQ;EAAEJ,KAAK;EAAE,GAAGa;AAAM,CAAC,EAAEC,SAAS,KAAK;EACpG,MAAMC,SAAS,GAAG,IAAAC,aAAM,EAAc,IAAI,CAAC;EAC3C,MAAMX,KAAK,GAAG,IAAAW,aAAM,EAAoB7B,YAAY,CAAC;EACrD,MAAM8B,QAAQ,GAAG,IAAAD,aAAM,EAAChB,KAAK,CAAC;EAE9B,IAAAkB,gBAAS,EAAC,MAAM;IACZD,QAAQ,CAACE,OAAO,GAAGnB,KAAK;EAC5B,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,IAAAkB,gBAAS,EAAC,MAAM;IACZ,MAAME,OAAO,GAAIC,QAAoC,IAAK,MAAM;MAC5DhB,KAAK,CAACc,OAAO,GAAG;QAAE,GAAGd,KAAK,CAACc,OAAO;QAAE,GAAGE;MAAS,CAAC;MAEjDnB,YAAY,CAAC;QACTC,GAAG,EAAEY,SAAS,CAACI,OAAO;QACtBnB,KAAK,EAAEiB,QAAQ,CAACE,OAA4B;QAC5Cf,QAAQ;QACRC,KAAK,EAAEA,KAAK,CAACc;MACjB,CAAC,CAAC;IACN,CAAC;IAED,IAAI,CAACJ,SAAS,CAACI,OAAO,EAAE;MACpB;IACJ;;IAEA;IACA,MAAMhB,GAAG,GAAGY,SAAS,CAACI,OAAoC;IAE1DxC,MAAM,CAAC2C,OAAO,CAAC/B,MAAM,CAAC,CAACgC,OAAO,CAAC,CAAC,CAACC,KAAK,EAAEnB,KAAK,CAAC,KAAK;MAC/CF,GAAG,CAACsB,gBAAgB,CAACD,KAAK,EAAEJ,OAAO,CAACf,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,OAAO,MAAM;MACT1B,MAAM,CAAC2C,OAAO,CAAC/B,MAAM,CAAC,CAACgC,OAAO,CAAC,CAAC,CAACC,KAAK,EAAEnB,KAAK,CAAC,KAAK;QAC/CF,GAAG,CAACuB,mBAAmB,CAACF,KAAK,EAAEJ,OAAO,CAACf,KAAK,CAAC,CAAC;MAClD,CAAC,CAAC;IACN,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,oBACI,IAAAvC,WAAA,CAAA6D,GAAA,EAAC/D,YAAA,CAAA8C,SAA0B;IAAA,GACnBG,KAAK;IACTV,GAAG,EAAEA,GAAG,IAAI;MACRY,SAAS,CAACI,OAAO,GAAGhB,GAAG;MACvBD,YAAY,CAAC;QACTC,GAAG;QACHH,KAAK,EAAEA,KAA0B;QACjCI,QAAQ;QACRC,KAAK,EAAElB;MACX,CAAC,CAAC;MAEF,IAAI,OAAO2B,SAAS,KAAK,QAAQ,IAAIA,SAAS,KAAK,IAAI,EAAE;QACrDA,SAAS,CAACK,OAAO,GAAGhB,GAAG;MAC3B;IACJ;EAAE,CACL,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Display", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Display.Display;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "Hide", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _Hide.Hide;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "Pressable", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _Pressable.Pressable;
22
+ }
23
+ });
24
+ var _Hide = require("./Hide");
25
+ var _Display = require("./Display");
26
+ var _Pressable = require("./Pressable");
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Hide","require","_Display","_Pressable"],"sourceRoot":"../../../src","sources":["components/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA","ignoreList":[]}