react-native-unistyles 3.0.0-alpha.8 → 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 +116 -5
  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 -11
  22. package/cxx/core/UnistyleData.h +5 -3
  23. package/cxx/core/UnistyleWrapper.h +108 -13
  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 +109 -48
  30. package/cxx/core/UnistylesRegistry.h +11 -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 -11
  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 +211 -128
  43. package/cxx/parser/Parser.h +7 -6
  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 +58 -44
  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 -1181
  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
@@ -55,7 +55,7 @@ namespace margelo::nitro::unistyles {
55
55
  * the future, HybridNativePlatformSpecCxx can directly inherit from the C++ class HybridNativePlatformSpec
56
56
  * to simplify the whole structure and memory management.
57
57
  */
58
- class HybridNativePlatformSpecSwift final: public HybridNativePlatformSpec {
58
+ class HybridNativePlatformSpecSwift: public virtual HybridNativePlatformSpec {
59
59
  public:
60
60
  // Constructor from a Swift instance
61
61
  explicit HybridNativePlatformSpecSwift(const Unistyles::HybridNativePlatformSpecCxx& swiftPart):
@@ -121,18 +121,12 @@ namespace margelo::nitro::unistyles {
121
121
  inline void setRootViewBackgroundColor(double color) override {
122
122
  _swiftPart.setRootViewBackgroundColor(std::forward<decltype(color)>(color));
123
123
  }
124
- inline void setNavigationBarBackgroundColor(double color) override {
125
- _swiftPart.setNavigationBarBackgroundColor(std::forward<decltype(color)>(color));
126
- }
127
124
  inline void setNavigationBarHidden(bool isHidden) override {
128
125
  _swiftPart.setNavigationBarHidden(std::forward<decltype(isHidden)>(isHidden));
129
126
  }
130
127
  inline void setStatusBarHidden(bool isHidden) override {
131
128
  _swiftPart.setStatusBarHidden(std::forward<decltype(isHidden)>(isHidden));
132
129
  }
133
- inline void setStatusBarBackgroundColor(double color) override {
134
- _swiftPart.setStatusBarBackgroundColor(std::forward<decltype(color)>(color));
135
- }
136
130
  inline void setImmersiveMode(bool isEnabled) override {
137
131
  _swiftPart.setImmersiveMode(std::forward<decltype(isEnabled)>(isEnabled));
138
132
  }
@@ -140,9 +134,15 @@ namespace margelo::nitro::unistyles {
140
134
  auto __result = _swiftPart.getMiniRuntime();
141
135
  return __result;
142
136
  }
143
- inline void registerPlatformListener(const std::function<void(const std::vector<UnistyleDependency>& /* dependencies */)>& callback) override {
137
+ inline void registerPlatformListener(const std::function<void(const std::vector<UnistyleDependency>& /* dependencies */, const UnistylesNativeMiniRuntime& /* miniRuntime */)>& callback) override {
144
138
  _swiftPart.registerPlatformListener(callback);
145
139
  }
140
+ inline void registerImeListener(const std::function<void(const UnistylesNativeMiniRuntime& /* miniRuntime */)>& callback) override {
141
+ _swiftPart.registerImeListener(callback);
142
+ }
143
+ inline void unregisterPlatformListeners() override {
144
+ _swiftPart.unregisterPlatformListeners();
145
+ }
146
146
 
147
147
  private:
148
148
  Unistyles::HybridNativePlatformSpecCxx _swiftPart;
@@ -27,7 +27,7 @@ import NitroModules
27
27
  * }
28
28
  * ```
29
29
  */
30
- public protocol HybridNativePlatformSpec: HybridObjectSpec {
30
+ public protocol HybridNativePlatformSpec: AnyObject, HybridObjectSpec {
31
31
  // Properties
32
32
 
33
33
 
@@ -43,23 +43,11 @@ public protocol HybridNativePlatformSpec: HybridObjectSpec {
43
43
  func getNavigationBarDimensions() throws -> Dimensions
44
44
  func getPrefersRtlDirection() throws -> Bool
45
45
  func setRootViewBackgroundColor(color: Double) throws -> Void
46
- func setNavigationBarBackgroundColor(color: Double) throws -> Void
47
46
  func setNavigationBarHidden(isHidden: Bool) throws -> Void
48
47
  func setStatusBarHidden(isHidden: Bool) throws -> Void
49
- func setStatusBarBackgroundColor(color: Double) throws -> Void
50
48
  func setImmersiveMode(isEnabled: Bool) throws -> Void
51
49
  func getMiniRuntime() throws -> UnistylesNativeMiniRuntime
52
- func registerPlatformListener(callback: @escaping ((_ dependencies: [UnistyleDependency]) -> Void)) throws -> Void
53
- }
54
-
55
- public extension HybridNativePlatformSpec {
56
- /**
57
- * Create a new instance of HybridNativePlatformSpecCxx for the given HybridNativePlatformSpec.
58
- *
59
- * Instances of HybridNativePlatformSpecCxx can be accessed from C++, and contain
60
- * additional required bridging code for C++ <> Swift interop.
61
- */
62
- func createCxxBridge() -> HybridNativePlatformSpecCxx {
63
- return HybridNativePlatformSpecCxx(self)
64
- }
50
+ func registerPlatformListener(callback: @escaping ((_ dependencies: [UnistyleDependency], _ miniRuntime: UnistylesNativeMiniRuntime) -> Void)) throws -> Void
51
+ func registerImeListener(callback: @escaping ((_ miniRuntime: UnistylesNativeMiniRuntime) -> Void)) throws -> Void
52
+ func unregisterPlatformListeners() throws -> Void
65
53
  }
@@ -8,6 +8,30 @@
8
8
  import Foundation
9
9
  import NitroModules
10
10
 
11
+ /**
12
+ * Helper class for converting instances of `HybridNativePlatformSpecCxx` from- and to unsafe pointers.
13
+ * This is useful to pass Swift classes to C++, without having to strongly type the C++ function signature.
14
+ * The actual Swift type can be included in the .cpp file, without having to forward-declare anything in .hpp.
15
+ */
16
+ public final class HybridNativePlatformSpecCxxUnsafe {
17
+ /**
18
+ * Casts a `HybridNativePlatformSpecCxx` instance to a retained unsafe raw pointer.
19
+ * This acquires one additional strong reference on the object!
20
+ */
21
+ public static func toUnsafe(_ instance: HybridNativePlatformSpecCxx) -> UnsafeMutableRawPointer {
22
+ return Unmanaged.passRetained(instance).toOpaque()
23
+ }
24
+
25
+ /**
26
+ * Casts an unsafe pointer to a `HybridNativePlatformSpecCxx`.
27
+ * The pointer has to be a retained opaque `Unmanaged<HybridNativePlatformSpecCxx>`.
28
+ * This removes one strong reference from the object!
29
+ */
30
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> HybridNativePlatformSpecCxx {
31
+ return Unmanaged<HybridNativePlatformSpecCxx>.fromOpaque(pointer).takeRetainedValue()
32
+ }
33
+ }
34
+
11
35
  /**
12
36
  * A class implementation that bridges HybridNativePlatformSpec over to C++.
13
37
  * In C++, we cannot use Swift protocols - so we need to wrap it in a class to make it strongly defined.
@@ -17,7 +41,7 @@ import NitroModules
17
41
  * - Other HybridObjects need to be wrapped/unwrapped from the Swift TCxx wrapper
18
42
  * - Throwing methods need to be wrapped with a Result<T, Error> type, as exceptions cannot be propagated to C++
19
43
  */
20
- public final class HybridNativePlatformSpecCxx {
44
+ public class HybridNativePlatformSpecCxx {
21
45
  /**
22
46
  * The Swift <> C++ bridge's namespace (`margelo::nitro::unistyles::bridge::swift`)
23
47
  * from `Unistyles-Swift-Cxx-Bridge.hpp`.
@@ -28,25 +52,36 @@ public final class HybridNativePlatformSpecCxx {
28
52
  /**
29
53
  * Holds an instance of the `HybridNativePlatformSpec` Swift protocol.
30
54
  */
31
- private(set) var implementation: HybridNativePlatformSpec
55
+ private var __implementation: any HybridNativePlatformSpec
32
56
 
33
57
  /**
34
58
  * Create a new `HybridNativePlatformSpecCxx` that wraps the given `HybridNativePlatformSpec`.
35
59
  * All properties and methods bridge to C++ types.
36
60
  */
37
- public init(_ implementation: HybridNativePlatformSpec) {
38
- self.implementation = implementation
61
+ public init(_ implementation: some HybridNativePlatformSpec) {
62
+ self.__implementation = implementation
63
+ /* no base class */
64
+ }
65
+
66
+ /**
67
+ * Get the actual `HybridNativePlatformSpec` instance this class wraps.
68
+ */
69
+ @inline(__always)
70
+ public func getHybridNativePlatformSpec() -> any HybridNativePlatformSpec {
71
+ return __implementation
39
72
  }
40
73
 
41
74
  /**
42
75
  * Contains a (weak) reference to the C++ HybridObject to cache it.
43
76
  */
44
77
  public var hybridContext: margelo.nitro.HybridContext {
78
+ @inline(__always)
45
79
  get {
46
- return self.implementation.hybridContext
80
+ return self.__implementation.hybridContext
47
81
  }
82
+ @inline(__always)
48
83
  set {
49
- self.implementation.hybridContext = newValue
84
+ self.__implementation.hybridContext = newValue
50
85
  }
51
86
  }
52
87
 
@@ -54,220 +89,226 @@ public final class HybridNativePlatformSpecCxx {
54
89
  * Get the memory size of the Swift class (plus size of any other allocations)
55
90
  * so the JS VM can properly track it and garbage-collect the JS object if needed.
56
91
  */
92
+ @inline(__always)
57
93
  public var memorySize: Int {
58
- return self.implementation.memorySize
94
+ return self.__implementation.memorySize
59
95
  }
60
96
 
61
97
  // Properties
62
-
98
+
63
99
 
64
100
  // Methods
65
101
  @inline(__always)
66
102
  public func getInsets() -> Insets {
67
103
  do {
68
- let result = try self.implementation.getInsets()
69
- return result
104
+ let __result = try self.__implementation.getInsets()
105
+ return __result
70
106
  } catch {
71
- let message = "\(error.localizedDescription)"
72
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
107
+ let __message = "\(error.localizedDescription)"
108
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
73
109
  }
74
110
  }
75
-
111
+
76
112
  @inline(__always)
77
113
  public func getColorScheme() -> Int32 {
78
114
  do {
79
- let result = try self.implementation.getColorScheme()
80
- return result.rawValue
115
+ let __result = try self.__implementation.getColorScheme()
116
+ return __result.rawValue
81
117
  } catch {
82
- let message = "\(error.localizedDescription)"
83
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
118
+ let __message = "\(error.localizedDescription)"
119
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
84
120
  }
85
121
  }
86
-
122
+
87
123
  @inline(__always)
88
124
  public func getFontScale() -> Double {
89
125
  do {
90
- let result = try self.implementation.getFontScale()
91
- return result
126
+ let __result = try self.__implementation.getFontScale()
127
+ return __result
92
128
  } catch {
93
- let message = "\(error.localizedDescription)"
94
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
129
+ let __message = "\(error.localizedDescription)"
130
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
95
131
  }
96
132
  }
97
-
133
+
98
134
  @inline(__always)
99
135
  public func getPixelRatio() -> Double {
100
136
  do {
101
- let result = try self.implementation.getPixelRatio()
102
- return result
137
+ let __result = try self.__implementation.getPixelRatio()
138
+ return __result
103
139
  } catch {
104
- let message = "\(error.localizedDescription)"
105
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
140
+ let __message = "\(error.localizedDescription)"
141
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
106
142
  }
107
143
  }
108
-
144
+
109
145
  @inline(__always)
110
146
  public func getOrientation() -> Int32 {
111
147
  do {
112
- let result = try self.implementation.getOrientation()
113
- return result.rawValue
148
+ let __result = try self.__implementation.getOrientation()
149
+ return __result.rawValue
114
150
  } catch {
115
- let message = "\(error.localizedDescription)"
116
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
151
+ let __message = "\(error.localizedDescription)"
152
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
117
153
  }
118
154
  }
119
-
155
+
120
156
  @inline(__always)
121
157
  public func getContentSizeCategory() -> std.string {
122
158
  do {
123
- let result = try self.implementation.getContentSizeCategory()
124
- return std.string(result)
159
+ let __result = try self.__implementation.getContentSizeCategory()
160
+ return std.string(__result)
125
161
  } catch {
126
- let message = "\(error.localizedDescription)"
127
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
162
+ let __message = "\(error.localizedDescription)"
163
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
128
164
  }
129
165
  }
130
-
166
+
131
167
  @inline(__always)
132
168
  public func getScreenDimensions() -> Dimensions {
133
169
  do {
134
- let result = try self.implementation.getScreenDimensions()
135
- return result
170
+ let __result = try self.__implementation.getScreenDimensions()
171
+ return __result
136
172
  } catch {
137
- let message = "\(error.localizedDescription)"
138
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
173
+ let __message = "\(error.localizedDescription)"
174
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
139
175
  }
140
176
  }
141
-
177
+
142
178
  @inline(__always)
143
179
  public func getStatusBarDimensions() -> Dimensions {
144
180
  do {
145
- let result = try self.implementation.getStatusBarDimensions()
146
- return result
181
+ let __result = try self.__implementation.getStatusBarDimensions()
182
+ return __result
147
183
  } catch {
148
- let message = "\(error.localizedDescription)"
149
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
184
+ let __message = "\(error.localizedDescription)"
185
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
150
186
  }
151
187
  }
152
-
188
+
153
189
  @inline(__always)
154
190
  public func getNavigationBarDimensions() -> Dimensions {
155
191
  do {
156
- let result = try self.implementation.getNavigationBarDimensions()
157
- return result
192
+ let __result = try self.__implementation.getNavigationBarDimensions()
193
+ return __result
158
194
  } catch {
159
- let message = "\(error.localizedDescription)"
160
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
195
+ let __message = "\(error.localizedDescription)"
196
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
161
197
  }
162
198
  }
163
-
199
+
164
200
  @inline(__always)
165
201
  public func getPrefersRtlDirection() -> Bool {
166
202
  do {
167
- let result = try self.implementation.getPrefersRtlDirection()
168
- return result
203
+ let __result = try self.__implementation.getPrefersRtlDirection()
204
+ return __result
169
205
  } catch {
170
- let message = "\(error.localizedDescription)"
171
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
206
+ let __message = "\(error.localizedDescription)"
207
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
172
208
  }
173
209
  }
174
-
210
+
175
211
  @inline(__always)
176
212
  public func setRootViewBackgroundColor(color: Double) -> Void {
177
213
  do {
178
- try self.implementation.setRootViewBackgroundColor(color: color)
179
- return
214
+ try self.__implementation.setRootViewBackgroundColor(color: color)
215
+ return
180
216
  } catch {
181
- let message = "\(error.localizedDescription)"
182
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
217
+ let __message = "\(error.localizedDescription)"
218
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
183
219
  }
184
220
  }
185
-
221
+
186
222
  @inline(__always)
187
- public func setNavigationBarBackgroundColor(color: Double) -> Void {
223
+ public func setNavigationBarHidden(isHidden: Bool) -> Void {
188
224
  do {
189
- try self.implementation.setNavigationBarBackgroundColor(color: color)
190
- return
225
+ try self.__implementation.setNavigationBarHidden(isHidden: isHidden)
226
+ return
191
227
  } catch {
192
- let message = "\(error.localizedDescription)"
193
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
228
+ let __message = "\(error.localizedDescription)"
229
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
194
230
  }
195
231
  }
196
-
232
+
197
233
  @inline(__always)
198
- public func setNavigationBarHidden(isHidden: Bool) -> Void {
234
+ public func setStatusBarHidden(isHidden: Bool) -> Void {
199
235
  do {
200
- try self.implementation.setNavigationBarHidden(isHidden: isHidden)
201
- return
236
+ try self.__implementation.setStatusBarHidden(isHidden: isHidden)
237
+ return
202
238
  } catch {
203
- let message = "\(error.localizedDescription)"
204
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
239
+ let __message = "\(error.localizedDescription)"
240
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
205
241
  }
206
242
  }
207
-
243
+
208
244
  @inline(__always)
209
- public func setStatusBarHidden(isHidden: Bool) -> Void {
245
+ public func setImmersiveMode(isEnabled: Bool) -> Void {
210
246
  do {
211
- try self.implementation.setStatusBarHidden(isHidden: isHidden)
212
- return
247
+ try self.__implementation.setImmersiveMode(isEnabled: isEnabled)
248
+ return
213
249
  } catch {
214
- let message = "\(error.localizedDescription)"
215
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
250
+ let __message = "\(error.localizedDescription)"
251
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
216
252
  }
217
253
  }
218
-
254
+
219
255
  @inline(__always)
220
- public func setStatusBarBackgroundColor(color: Double) -> Void {
256
+ public func getMiniRuntime() -> UnistylesNativeMiniRuntime {
221
257
  do {
222
- try self.implementation.setStatusBarBackgroundColor(color: color)
223
- return
258
+ let __result = try self.__implementation.getMiniRuntime()
259
+ return __result
224
260
  } catch {
225
- let message = "\(error.localizedDescription)"
226
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
261
+ let __message = "\(error.localizedDescription)"
262
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
227
263
  }
228
264
  }
229
-
265
+
230
266
  @inline(__always)
231
- public func setImmersiveMode(isEnabled: Bool) -> Void {
267
+ public func registerPlatformListener(callback: bridge.Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime) -> Void {
232
268
  do {
233
- try self.implementation.setImmersiveMode(isEnabled: isEnabled)
234
- return
269
+ try self.__implementation.registerPlatformListener(callback: { () -> (([UnistyleDependency], UnistylesNativeMiniRuntime) -> Void) in
270
+ let __sharedClosure = bridge.share_Func_void_std__vector_UnistyleDependency__UnistylesNativeMiniRuntime(callback)
271
+ return { (__dependencies: [UnistyleDependency], __miniRuntime: UnistylesNativeMiniRuntime) -> Void in
272
+ __sharedClosure.pointee.call({ () -> bridge.std__vector_UnistyleDependency_ in
273
+ var __vector = bridge.create_std__vector_UnistyleDependency_(__dependencies.count)
274
+ for __item in __dependencies {
275
+ __vector.push_back(__item)
276
+ }
277
+ return __vector
278
+ }(), __miniRuntime)
279
+ }
280
+ }())
281
+ return
235
282
  } catch {
236
- let message = "\(error.localizedDescription)"
237
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
283
+ let __message = "\(error.localizedDescription)"
284
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
238
285
  }
239
286
  }
240
-
287
+
241
288
  @inline(__always)
242
- public func getMiniRuntime() -> UnistylesNativeMiniRuntime {
289
+ public func registerImeListener(callback: bridge.Func_void_UnistylesNativeMiniRuntime) -> Void {
243
290
  do {
244
- let result = try self.implementation.getMiniRuntime()
245
- return result
291
+ try self.__implementation.registerImeListener(callback: { () -> ((UnistylesNativeMiniRuntime) -> Void) in
292
+ let __sharedClosure = bridge.share_Func_void_UnistylesNativeMiniRuntime(callback)
293
+ return { (__miniRuntime: UnistylesNativeMiniRuntime) -> Void in
294
+ __sharedClosure.pointee.call(__miniRuntime)
295
+ }
296
+ }())
297
+ return
246
298
  } catch {
247
- let message = "\(error.localizedDescription)"
248
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
299
+ let __message = "\(error.localizedDescription)"
300
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
249
301
  }
250
302
  }
251
-
303
+
252
304
  @inline(__always)
253
- public func registerPlatformListener(callback: bridge.Func_void_std__vector_UnistyleDependency_) -> Void {
305
+ public func unregisterPlatformListeners() -> Void {
254
306
  do {
255
- try self.implementation.registerPlatformListener(callback: { () -> (([UnistyleDependency]) -> Void) in
256
- let shared = bridge.share_Func_void_std__vector_UnistyleDependency_(callback)
257
- return { (dependencies: [UnistyleDependency]) -> Void in
258
- shared.pointee.call({ () -> bridge.std__vector_UnistyleDependency_ in
259
- var vector = bridge.create_std__vector_UnistyleDependency_(dependencies.count)
260
- for item in dependencies {
261
- vector.push_back(item)
262
- }
263
- return vector
264
- }())
265
- }
266
- }())
267
- return
307
+ try self.__implementation.unregisterPlatformListeners()
308
+ return
268
309
  } catch {
269
- let message = "\(error.localizedDescription)"
270
- fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(message))")
310
+ let __message = "\(error.localizedDescription)"
311
+ fatalError("Swift errors can currently not be propagated to C++! See https://github.com/swiftlang/swift/issues/75290 (Error: \(__message))")
271
312
  }
272
313
  }
273
314
  }
@@ -45,6 +45,8 @@ public extension UnistyleDependency {
45
45
  self = .statusbar
46
46
  case "NavigationBar":
47
47
  self = .navigationbar
48
+ case "Ime":
49
+ self = .ime
48
50
  default:
49
51
  return nil
50
52
  }
@@ -83,6 +85,8 @@ public extension UnistyleDependency {
83
85
  return "StatusBar"
84
86
  case .navigationbar:
85
87
  return "NavigationBar"
88
+ case .ime:
89
+ return "Ime"
86
90
  }
87
91
  }
88
92
  }
@@ -18,8 +18,8 @@ public extension UnistylesNativeMiniRuntime {
18
18
  /**
19
19
  * Create a new instance of `UnistylesNativeMiniRuntime`.
20
20
  */
21
- init(colorScheme: ColorScheme, screen: Dimensions, contentSizeCategory: String, insets: Insets, pixelRatio: Double, fontScale: Double, rtl: Bool, statusBar: Dimensions, navigationBar: Dimensions, orientation: Orientation) {
22
- self.init(colorScheme, screen, std.string(contentSizeCategory), insets, pixelRatio, fontScale, rtl, statusBar, navigationBar, orientation)
21
+ init(colorScheme: ColorScheme, screen: Dimensions, contentSizeCategory: String, insets: Insets, pixelRatio: Double, fontScale: Double, rtl: Bool, statusBar: Dimensions, navigationBar: Dimensions, isPortrait: Bool, isLandscape: Bool) {
22
+ self.init(colorScheme, screen, std.string(contentSizeCategory), insets, pixelRatio, fontScale, rtl, statusBar, navigationBar, isPortrait, isLandscape)
23
23
  }
24
24
 
25
25
  var colorScheme: ColorScheme {
@@ -121,14 +121,25 @@ public extension UnistylesNativeMiniRuntime {
121
121
  }
122
122
  }
123
123
 
124
- var orientation: Orientation {
124
+ var isPortrait: Bool {
125
125
  @inline(__always)
126
126
  get {
127
- return self.__orientation
127
+ return self.__isPortrait
128
128
  }
129
129
  @inline(__always)
130
130
  set {
131
- self.__orientation = newValue
131
+ self.__isPortrait = newValue
132
+ }
133
+ }
134
+
135
+ var isLandscape: Bool {
136
+ @inline(__always)
137
+ get {
138
+ return self.__isLandscape
139
+ }
140
+ @inline(__always)
141
+ set {
142
+ self.__isLandscape = newValue
132
143
  }
133
144
  }
134
145
  }
@@ -50,7 +50,7 @@ namespace margelo::nitro {
50
50
  case hashString("light"): return ColorScheme::LIGHT;
51
51
  case hashString("unspecified"): return ColorScheme::UNSPECIFIED;
52
52
  default: [[unlikely]]
53
- throw std::runtime_error("Cannot convert \"" + unionValue + "\" to enum ColorScheme - invalid value!");
53
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum ColorScheme - invalid value!");
54
54
  }
55
55
  }
56
56
  static inline jsi::Value toJSI(jsi::Runtime& runtime, ColorScheme arg) {
@@ -59,7 +59,7 @@ namespace margelo::nitro {
59
59
  case ColorScheme::LIGHT: return JSIConverter<std::string>::toJSI(runtime, "light");
60
60
  case ColorScheme::UNSPECIFIED: return JSIConverter<std::string>::toJSI(runtime, "unspecified");
61
61
  default: [[unlikely]]
62
- throw std::runtime_error("Cannot convert ColorScheme to JS - invalid value: "
62
+ throw std::invalid_argument("Cannot convert ColorScheme to JS - invalid value: "
63
63
  + std::to_string(static_cast<int>(arg)) + "!");
64
64
  }
65
65
  }
@@ -25,13 +25,13 @@ namespace margelo::nitro::unistyles {
25
25
  prototype.registerHybridMethod("getNavigationBarDimensions", &HybridNativePlatformSpec::getNavigationBarDimensions);
26
26
  prototype.registerHybridMethod("getPrefersRtlDirection", &HybridNativePlatformSpec::getPrefersRtlDirection);
27
27
  prototype.registerHybridMethod("setRootViewBackgroundColor", &HybridNativePlatformSpec::setRootViewBackgroundColor);
28
- prototype.registerHybridMethod("setNavigationBarBackgroundColor", &HybridNativePlatformSpec::setNavigationBarBackgroundColor);
29
28
  prototype.registerHybridMethod("setNavigationBarHidden", &HybridNativePlatformSpec::setNavigationBarHidden);
30
29
  prototype.registerHybridMethod("setStatusBarHidden", &HybridNativePlatformSpec::setStatusBarHidden);
31
- prototype.registerHybridMethod("setStatusBarBackgroundColor", &HybridNativePlatformSpec::setStatusBarBackgroundColor);
32
30
  prototype.registerHybridMethod("setImmersiveMode", &HybridNativePlatformSpec::setImmersiveMode);
33
31
  prototype.registerHybridMethod("getMiniRuntime", &HybridNativePlatformSpec::getMiniRuntime);
34
32
  prototype.registerHybridMethod("registerPlatformListener", &HybridNativePlatformSpec::registerPlatformListener);
33
+ prototype.registerHybridMethod("registerImeListener", &HybridNativePlatformSpec::registerImeListener);
34
+ prototype.registerHybridMethod("unregisterPlatformListeners", &HybridNativePlatformSpec::unregisterPlatformListeners);
35
35
  });
36
36
  }
37
37
 
@@ -43,9 +43,12 @@ namespace margelo::nitro::unistyles {
43
43
  /**
44
44
  * An abstract base class for `NativePlatform`
45
45
  * Inherit this class to create instances of `HybridNativePlatformSpec` in C++.
46
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
46
47
  * @example
47
48
  * ```cpp
48
49
  * class HybridNativePlatform: public HybridNativePlatformSpec {
50
+ * public:
51
+ * HybridNativePlatform(...): HybridObject(TAG) { ... }
49
52
  * // ...
50
53
  * };
51
54
  * ```
@@ -75,13 +78,13 @@ namespace margelo::nitro::unistyles {
75
78
  virtual Dimensions getNavigationBarDimensions() = 0;
76
79
  virtual bool getPrefersRtlDirection() = 0;
77
80
  virtual void setRootViewBackgroundColor(double color) = 0;
78
- virtual void setNavigationBarBackgroundColor(double color) = 0;
79
81
  virtual void setNavigationBarHidden(bool isHidden) = 0;
80
82
  virtual void setStatusBarHidden(bool isHidden) = 0;
81
- virtual void setStatusBarBackgroundColor(double color) = 0;
82
83
  virtual void setImmersiveMode(bool isEnabled) = 0;
83
84
  virtual UnistylesNativeMiniRuntime getMiniRuntime() = 0;
84
- virtual void registerPlatformListener(const std::function<void(const std::vector<UnistyleDependency>& /* dependencies */)>& callback) = 0;
85
+ virtual void registerPlatformListener(const std::function<void(const std::vector<UnistyleDependency>& /* dependencies */, const UnistylesNativeMiniRuntime& /* miniRuntime */)>& callback) = 0;
86
+ virtual void registerImeListener(const std::function<void(const UnistylesNativeMiniRuntime& /* miniRuntime */)>& callback) = 0;
87
+ virtual void unregisterPlatformListeners() = 0;
85
88
 
86
89
  protected:
87
90
  // Hybrid Setup
@@ -16,7 +16,6 @@ namespace margelo::nitro::unistyles {
16
16
  registerHybrids(this, [](Prototype& prototype) {
17
17
  prototype.registerHybridGetter("width", &HybridUnistylesNavigationBarSpec::getWidth);
18
18
  prototype.registerHybridGetter("height", &HybridUnistylesNavigationBarSpec::getHeight);
19
- prototype.registerHybridMethod("setBackgroundColor", &HybridUnistylesNavigationBarSpec::setBackgroundColor);
20
19
  prototype.registerHybridMethod("setHidden", &HybridUnistylesNavigationBarSpec::setHidden);
21
20
  });
22
21
  }
@@ -24,9 +24,12 @@ namespace margelo::nitro::unistyles {
24
24
  /**
25
25
  * An abstract base class for `UnistylesNavigationBar`
26
26
  * Inherit this class to create instances of `HybridUnistylesNavigationBarSpec` in C++.
27
+ * You must explicitly call `HybridObject`'s constructor yourself, because it is virtual.
27
28
  * @example
28
29
  * ```cpp
29
30
  * class HybridUnistylesNavigationBar: public HybridUnistylesNavigationBarSpec {
31
+ * public:
32
+ * HybridUnistylesNavigationBar(...): HybridObject(TAG) { ... }
30
33
  * // ...
31
34
  * };
32
35
  * ```
@@ -46,7 +49,6 @@ namespace margelo::nitro::unistyles {
46
49
 
47
50
  public:
48
51
  // Methods
49
- virtual void setBackgroundColor(double color) = 0;
50
52
  virtual void setHidden(bool isHidden) = 0;
51
53
 
52
54
  protected: