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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (536) hide show
  1. package/README.md +7 -0
  2. package/android/CMakeLists.txt +12 -21
  3. package/cxx/common/Constants.h +3 -0
  4. package/cxx/common/Helpers.h +118 -5
  5. package/cxx/core/HostStyle.cpp +12 -8
  6. package/cxx/core/HostStyle.h +4 -0
  7. package/cxx/core/StyleSheet.h +0 -2
  8. package/cxx/core/StyleSheetRegistry.cpp +10 -13
  9. package/cxx/core/StyleSheetRegistry.h +4 -4
  10. package/cxx/core/Unistyle.h +7 -10
  11. package/cxx/core/UnistyleData.h +23 -0
  12. package/cxx/core/UnistyleWrapper.h +61 -12
  13. package/cxx/core/UnistylesCommitHook.cpp +14 -15
  14. package/cxx/core/UnistylesCommitHook.h +6 -11
  15. package/cxx/core/UnistylesCommitShadowNode.h +13 -0
  16. package/cxx/core/UnistylesMountHook.cpp +28 -0
  17. package/cxx/core/UnistylesMountHook.h +25 -0
  18. package/cxx/core/UnistylesRegistry.cpp +104 -89
  19. package/cxx/core/UnistylesRegistry.h +16 -13
  20. package/cxx/core/UnistylesState.cpp +29 -11
  21. package/cxx/core/UnistylesState.h +5 -2
  22. package/cxx/hybridObjects/HybridShadowRegistry.cpp +15 -13
  23. package/cxx/hybridObjects/HybridStyleSheet.cpp +136 -46
  24. package/cxx/hybridObjects/HybridStyleSheet.h +23 -5
  25. package/cxx/hybridObjects/HybridUnistylesRuntime.cpp +51 -8
  26. package/cxx/hybridObjects/HybridUnistylesRuntime.h +12 -1
  27. package/cxx/parser/Parser.cpp +236 -165
  28. package/cxx/parser/Parser.h +11 -14
  29. package/cxx/shadowTree/ShadowLeafUpdate.h +2 -1
  30. package/cxx/shadowTree/ShadowTrafficController.h +60 -0
  31. package/cxx/shadowTree/ShadowTreeManager.cpp +17 -17
  32. package/cxx/shadowTree/ShadowTreeManager.h +3 -2
  33. package/ios/Equatable.swift +2 -1
  34. package/ios/NativePlatform+ios.swift +21 -5
  35. package/ios/NativePlatform+keyboard.swift +83 -0
  36. package/ios/NativePlatformListener+ios.swift +36 -23
  37. package/ios/Unistyles.h +1 -0
  38. package/ios/UnistylesModuleOnLoad.h +13 -2
  39. package/ios/UnistylesModuleOnLoad.mm +9 -1
  40. package/lib/commonjs/core/createUnistylesComponent.js +18 -0
  41. package/lib/commonjs/core/createUnistylesComponent.js.map +1 -0
  42. package/lib/commonjs/core/createUnistylesComponent.native.js +46 -0
  43. package/lib/commonjs/core/createUnistylesComponent.native.js.map +1 -0
  44. package/lib/commonjs/core/index.js +27 -0
  45. package/lib/commonjs/core/index.js.map +1 -0
  46. package/lib/commonjs/core/useBreakpoint.js +22 -0
  47. package/lib/commonjs/core/useBreakpoint.js.map +1 -0
  48. package/lib/commonjs/core/useBreakpoint.native.js +24 -0
  49. package/lib/commonjs/core/useBreakpoint.native.js.map +1 -0
  50. package/lib/commonjs/core/useTheme.js +22 -0
  51. package/lib/commonjs/core/useTheme.js.map +1 -0
  52. package/lib/commonjs/core/useTheme.native.js +24 -0
  53. package/lib/commonjs/core/useTheme.native.js.map +1 -0
  54. package/lib/commonjs/global.js +3 -0
  55. package/lib/commonjs/index.js +23 -11
  56. package/lib/commonjs/index.js.map +1 -1
  57. package/lib/commonjs/mq.js +1 -4
  58. package/lib/commonjs/mq.js.map +2 -1
  59. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js +1 -0
  60. package/lib/commonjs/specs/NativePlatform/NativePlatform.nitro.js.map +2 -1
  61. package/lib/commonjs/specs/NativePlatform/index.js.map +1 -1
  62. package/lib/commonjs/specs/NavigtionBar/index.js +1 -1
  63. package/lib/commonjs/specs/NavigtionBar/index.js.map +1 -1
  64. package/lib/commonjs/specs/ShadowRegistry/index.js +7 -6
  65. package/lib/commonjs/specs/ShadowRegistry/index.js.map +1 -1
  66. package/lib/commonjs/specs/ShadowRegistry/types.js +3 -0
  67. package/lib/commonjs/specs/StatusBar/index.js +1 -1
  68. package/lib/commonjs/specs/StatusBar/index.js.map +1 -1
  69. package/lib/commonjs/specs/StyleSheet/UnistylesStyleSheet.nitro.js +2 -4
  70. package/lib/commonjs/specs/StyleSheet/UnistylesStyleSheet.nitro.js.map +1 -1
  71. package/lib/commonjs/specs/StyleSheet/index.js +1 -0
  72. package/lib/commonjs/specs/StyleSheet/index.js.map +2 -1
  73. package/lib/commonjs/specs/UnistylesRuntime/index.js +1 -1
  74. package/lib/commonjs/specs/UnistylesRuntime/index.js.map +1 -1
  75. package/lib/commonjs/specs/index.js +7 -0
  76. package/lib/commonjs/specs/index.js.map +1 -1
  77. package/lib/commonjs/specs/index.web.js +1 -1
  78. package/lib/commonjs/specs/index.web.js.map +2 -1
  79. package/lib/commonjs/specs/types.js +10 -10
  80. package/lib/commonjs/specs/types.js.map +1 -0
  81. package/lib/commonjs/types/accessibility.js +1 -1
  82. package/lib/commonjs/types/accessibility.js.map +1 -0
  83. package/lib/commonjs/types/common.js +3 -0
  84. package/lib/commonjs/types/stylesheet.js.map +1 -1
  85. package/lib/commonjs/types/variants.js.map +1 -1
  86. package/lib/commonjs/web/convert/boxShadow.js +74 -0
  87. package/lib/commonjs/web/convert/boxShadow.js.map +2 -0
  88. package/lib/commonjs/web/convert/index.js +68 -0
  89. package/lib/commonjs/web/convert/index.js.map +2 -0
  90. package/lib/commonjs/web/convert/module.d.js +2 -0
  91. package/lib/commonjs/web/convert/module.d.js.map +1 -0
  92. package/lib/commonjs/web/convert/pseudo.js +10 -0
  93. package/lib/commonjs/web/convert/pseudo.js.map +2 -0
  94. package/lib/commonjs/web/convert/shadow.js +64 -0
  95. package/lib/commonjs/web/convert/shadow.js.map +1 -0
  96. package/lib/commonjs/web/convert/style.js +93 -0
  97. package/lib/commonjs/web/convert/style.js.map +2 -0
  98. package/lib/commonjs/web/convert/textShadow.js +73 -0
  99. package/lib/commonjs/web/convert/textShadow.js.map +1 -0
  100. package/lib/commonjs/web/convert/transform.js +72 -0
  101. package/lib/commonjs/web/convert/transform.js.map +2 -0
  102. package/lib/commonjs/web/convert/types.js +9 -0
  103. package/lib/commonjs/web/convert/types.js.map +1 -0
  104. package/lib/commonjs/web/convert/utils.js +54 -0
  105. package/lib/commonjs/web/convert/utils.js.map +2 -0
  106. package/lib/commonjs/web/create.js +48 -0
  107. package/lib/commonjs/web/create.js.map +1 -0
  108. package/lib/commonjs/web/index.js +60 -0
  109. package/lib/commonjs/web/index.js.map +1 -0
  110. package/lib/commonjs/web/listener.js +35 -0
  111. package/lib/commonjs/web/listener.js.map +1 -0
  112. package/lib/commonjs/web/mock.js +28 -0
  113. package/lib/commonjs/web/mock.js.map +1 -0
  114. package/lib/commonjs/web/mq.js +23 -0
  115. package/lib/commonjs/web/mq.js.map +1 -0
  116. package/lib/commonjs/web/registry.js +183 -0
  117. package/lib/commonjs/web/registry.js.map +2 -0
  118. package/lib/commonjs/web/runtime.js +167 -0
  119. package/lib/commonjs/web/runtime.js.map +2 -0
  120. package/lib/commonjs/web/shadowRegistry.js +114 -0
  121. package/lib/commonjs/web/shadowRegistry.js.map +2 -0
  122. package/lib/commonjs/web/state.js +69 -0
  123. package/lib/commonjs/web/state.js.map +2 -0
  124. package/lib/commonjs/web/utils/common.js +92 -0
  125. package/lib/commonjs/web/utils/common.js.map +1 -0
  126. package/lib/commonjs/web/utils/index.js +28 -0
  127. package/lib/commonjs/web/utils/index.js.map +1 -0
  128. package/lib/commonjs/web/utils/unistyle.js +82 -0
  129. package/lib/commonjs/web/utils/unistyle.js.map +2 -0
  130. package/lib/commonjs/web/variants/getVariants.js +39 -0
  131. package/lib/commonjs/web/variants/getVariants.js.map +2 -0
  132. package/lib/commonjs/web/variants/index.js +28 -0
  133. package/lib/commonjs/web/variants/index.js.map +1 -0
  134. package/lib/commonjs/web/variants/useVariants.js +58 -0
  135. package/lib/commonjs/web/variants/useVariants.js.map +2 -0
  136. package/lib/module/common.js.map +1 -1
  137. package/lib/module/core/createUnistylesComponent.js +12 -0
  138. package/lib/module/core/createUnistylesComponent.js.map +1 -0
  139. package/lib/module/core/createUnistylesComponent.native.js +39 -0
  140. package/lib/module/core/createUnistylesComponent.native.js.map +1 -0
  141. package/lib/module/core/index.js +6 -0
  142. package/lib/module/core/index.js.map +1 -0
  143. package/lib/module/core/useBreakpoint.js +17 -0
  144. package/lib/module/core/useBreakpoint.js.map +1 -0
  145. package/lib/module/core/useBreakpoint.native.js +19 -0
  146. package/lib/module/core/useBreakpoint.native.js.map +2 -0
  147. package/lib/module/core/useTheme.js +17 -0
  148. package/lib/module/core/useTheme.js.map +1 -0
  149. package/lib/module/core/useTheme.native.js +19 -0
  150. package/lib/module/core/useTheme.native.js.map +1 -0
  151. package/lib/module/global.js +1 -1
  152. package/lib/module/global.js.map +1 -0
  153. package/lib/module/index.js +1 -9
  154. package/lib/module/index.js.map +1 -1
  155. package/lib/module/mq.js +1 -4
  156. package/lib/module/mq.js.map +2 -1
  157. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js +1 -0
  158. package/lib/module/specs/NativePlatform/NativePlatform.nitro.js.map +2 -1
  159. package/lib/module/specs/NavigtionBar/UnistylesNavigationBar.nitro.js.map +1 -1
  160. package/lib/module/specs/NavigtionBar/index.js +1 -1
  161. package/lib/module/specs/NavigtionBar/index.js.map +1 -1
  162. package/lib/module/specs/ShadowRegistry/ShadowRegistry.nitro.js.map +1 -0
  163. package/lib/module/specs/ShadowRegistry/index.js +7 -6
  164. package/lib/module/specs/ShadowRegistry/index.js.map +1 -1
  165. package/lib/module/specs/ShadowRegistry/types.js +2 -0
  166. package/lib/module/specs/ShadowRegistry/types.js.map +1 -1
  167. package/lib/module/specs/StatusBar/UnistylesStatusBar.nitro.js.map +1 -0
  168. package/lib/module/specs/StatusBar/index.js +1 -1
  169. package/lib/module/specs/StatusBar/index.js.map +1 -1
  170. package/lib/module/specs/StyleSheet/UnistylesStyleSheet.nitro.js +1 -1
  171. package/lib/module/specs/StyleSheet/UnistylesStyleSheet.nitro.js.map +1 -1
  172. package/lib/module/specs/StyleSheet/index.js +1 -0
  173. package/lib/module/specs/StyleSheet/index.js.map +2 -1
  174. package/lib/module/specs/UnistylesRuntime/UnistylesRuntime.nitro.js.map +1 -1
  175. package/lib/module/specs/UnistylesRuntime/index.js +1 -1
  176. package/lib/module/specs/UnistylesRuntime/index.js.map +2 -1
  177. package/lib/module/specs/index.js +2 -1
  178. package/lib/module/specs/index.js.map +1 -1
  179. package/lib/module/specs/index.web.js +1 -1
  180. package/lib/module/specs/index.web.js.map +2 -1
  181. package/lib/module/specs/types.js.map +1 -0
  182. package/lib/module/types/accessibility.js +1 -1
  183. package/lib/module/types/accessibility.js.map +1 -0
  184. package/lib/module/types/breakpoints.js.map +1 -1
  185. package/lib/module/types/common.js +1 -1
  186. package/lib/module/types/common.js.map +1 -0
  187. package/lib/module/types/core.js.map +1 -0
  188. package/lib/module/types/index.js.map +2 -1
  189. package/lib/module/types/stylesheet.js.map +1 -1
  190. package/lib/module/types/variants.js.map +1 -0
  191. package/lib/module/web/convert/boxShadow.js +72 -0
  192. package/lib/module/web/convert/boxShadow.js.map +1 -0
  193. package/lib/module/web/convert/index.js +69 -0
  194. package/lib/module/web/convert/index.js.map +1 -0
  195. package/lib/module/web/convert/module.d.js +2 -0
  196. package/lib/module/web/convert/module.d.js.map +1 -0
  197. package/lib/module/web/convert/pseudo.js +5 -0
  198. package/lib/module/web/convert/pseudo.js.map +1 -0
  199. package/lib/module/web/convert/shadow.js +63 -0
  200. package/lib/module/web/convert/shadow.js.map +1 -0
  201. package/lib/module/web/convert/style.js +88 -0
  202. package/lib/module/web/convert/style.js.map +1 -0
  203. package/lib/module/web/convert/textShadow.js +65 -0
  204. package/lib/module/web/convert/textShadow.js.map +2 -0
  205. package/lib/module/web/convert/transform.js +67 -0
  206. package/lib/module/web/convert/transform.js.map +1 -0
  207. package/lib/module/web/convert/types.js +5 -0
  208. package/lib/module/web/convert/types.js.map +1 -0
  209. package/lib/module/web/convert/utils.js +42 -0
  210. package/lib/module/web/convert/utils.js.map +2 -0
  211. package/lib/module/web/create.js +39 -0
  212. package/lib/module/web/create.js.map +2 -0
  213. package/lib/module/web/index.js +25 -0
  214. package/lib/module/web/index.js.map +1 -0
  215. package/lib/module/web/listener.js +31 -0
  216. package/lib/module/web/listener.js.map +2 -0
  217. package/lib/module/web/mock.js +24 -0
  218. package/lib/module/web/mock.js.map +1 -0
  219. package/lib/module/web/mq.js +17 -0
  220. package/lib/module/web/mq.js.map +1 -0
  221. package/lib/module/web/registry.js +179 -0
  222. package/lib/module/web/registry.js.map +1 -0
  223. package/lib/module/web/runtime.js +163 -0
  224. package/lib/module/web/runtime.js.map +1 -0
  225. package/lib/module/web/shadowRegistry.js +118 -0
  226. package/lib/module/web/shadowRegistry.js.map +1 -0
  227. package/lib/module/web/state.js +65 -0
  228. package/lib/module/web/state.js.map +2 -0
  229. package/lib/module/web/utils/common.js +78 -0
  230. package/lib/module/web/utils/common.js.map +2 -0
  231. package/lib/module/web/utils/index.js +5 -0
  232. package/lib/module/web/utils/index.js.map +1 -0
  233. package/lib/module/web/utils/unistyle.js +69 -0
  234. package/lib/module/web/utils/unistyle.js.map +2 -0
  235. package/lib/module/web/variants/getVariants.js +34 -0
  236. package/lib/module/web/variants/getVariants.js.map +1 -0
  237. package/lib/module/web/variants/index.js +5 -0
  238. package/lib/module/web/variants/index.js.map +1 -0
  239. package/lib/module/web/variants/useVariants.js +53 -0
  240. package/lib/module/web/variants/useVariants.js.map +1 -0
  241. package/lib/typescript/src/core/createUnistylesComponent.d.ts +6 -0
  242. package/lib/typescript/src/core/createUnistylesComponent.d.ts.map +1 -0
  243. package/lib/typescript/src/core/createUnistylesComponent.native.d.ts +6 -0
  244. package/lib/typescript/src/core/createUnistylesComponent.native.d.ts.map +1 -0
  245. package/lib/typescript/src/core/index.d.ts +4 -0
  246. package/lib/typescript/src/core/index.d.ts.map +1 -0
  247. package/lib/typescript/src/core/useBreakpoint.d.ts +2 -0
  248. package/lib/typescript/src/core/useBreakpoint.d.ts.map +1 -0
  249. package/lib/typescript/src/core/useBreakpoint.native.d.ts +2 -0
  250. package/lib/typescript/src/core/useBreakpoint.native.d.ts.map +1 -0
  251. package/lib/typescript/src/core/useTheme.d.ts +3 -0
  252. package/lib/typescript/src/core/useTheme.d.ts.map +1 -0
  253. package/lib/typescript/src/core/useTheme.native.d.ts +3 -0
  254. package/lib/typescript/src/core/useTheme.native.d.ts.map +1 -0
  255. package/lib/typescript/src/index.d.ts +2 -0
  256. package/lib/typescript/src/index.d.ts.map +1 -1
  257. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts +6 -2
  258. package/lib/typescript/src/specs/NativePlatform/NativePlatform.nitro.d.ts.map +1 -1
  259. package/lib/typescript/src/specs/NavigtionBar/index.d.ts +5 -0
  260. package/lib/typescript/src/specs/NavigtionBar/index.d.ts.map +1 -1
  261. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts +3 -3
  262. package/lib/typescript/src/specs/ShadowRegistry/index.d.ts.map +1 -1
  263. package/lib/typescript/src/specs/StatusBar/index.d.ts +5 -0
  264. package/lib/typescript/src/specs/StatusBar/index.d.ts.map +1 -1
  265. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts +3 -1
  266. package/lib/typescript/src/specs/StyleSheet/UnistylesStyleSheet.nitro.d.ts.map +1 -1
  267. package/lib/typescript/src/specs/StyleSheet/index.d.ts +3 -1
  268. package/lib/typescript/src/specs/StyleSheet/index.d.ts.map +1 -1
  269. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts +0 -1
  270. package/lib/typescript/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.d.ts.map +1 -1
  271. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts +3 -1
  272. package/lib/typescript/src/specs/UnistylesRuntime/index.d.ts.map +1 -1
  273. package/lib/typescript/src/specs/index.d.ts +4 -2
  274. package/lib/typescript/src/specs/index.d.ts.map +1 -1
  275. package/lib/typescript/src/specs/index.web.d.ts +1 -1
  276. package/lib/typescript/src/specs/index.web.d.ts.map +1 -1
  277. package/lib/typescript/src/types/breakpoints.d.ts +11 -11
  278. package/lib/typescript/src/types/breakpoints.d.ts.map +1 -1
  279. package/lib/typescript/src/types/index.d.ts +1 -1
  280. package/lib/typescript/src/types/index.d.ts.map +1 -1
  281. package/lib/typescript/src/types/stylesheet.d.ts +6 -4
  282. package/lib/typescript/src/types/stylesheet.d.ts.map +1 -1
  283. package/lib/typescript/src/types/variants.d.ts +4 -1
  284. package/lib/typescript/src/types/variants.d.ts.map +1 -1
  285. package/lib/typescript/src/web/convert/boxShadow.d.ts +8 -0
  286. package/lib/typescript/src/web/convert/boxShadow.d.ts.map +1 -0
  287. package/lib/typescript/src/web/convert/index.d.ts +3 -0
  288. package/lib/typescript/src/web/convert/index.d.ts.map +1 -0
  289. package/lib/typescript/src/web/convert/pseudo.d.ts +6 -0
  290. package/lib/typescript/src/web/convert/pseudo.d.ts.map +1 -0
  291. package/lib/typescript/src/web/convert/shadow.d.ts.map +1 -0
  292. package/lib/typescript/src/web/convert/style.d.ts +2 -0
  293. package/lib/typescript/src/web/convert/style.d.ts.map +1 -0
  294. package/lib/typescript/src/web/convert/textShadow.d.ts +8 -0
  295. package/lib/typescript/src/web/convert/textShadow.d.ts.map +1 -0
  296. package/lib/typescript/src/web/convert/transform.d.ts +4 -0
  297. package/lib/typescript/src/web/convert/transform.d.ts.map +1 -0
  298. package/lib/typescript/{web → src/web}/convert/types.d.ts +1 -1
  299. package/lib/typescript/src/web/convert/types.d.ts.map +1 -0
  300. package/lib/typescript/src/web/convert/utils.d.ts.map +1 -0
  301. package/lib/typescript/src/web/create.d.ts +1443 -0
  302. package/lib/typescript/{web → src/web}/create.d.ts.map +1 -1
  303. package/lib/typescript/src/web/index.d.ts +1459 -0
  304. package/lib/typescript/{web → src/web}/index.d.ts.map +1 -1
  305. package/lib/typescript/{web/listener → src/web}/listener.d.ts +3 -2
  306. package/lib/typescript/src/web/listener.d.ts.map +1 -0
  307. package/lib/typescript/src/web/mock.d.ts +5 -0
  308. package/lib/typescript/src/web/mock.d.ts.map +1 -0
  309. package/lib/typescript/src/web/mq.d.ts +8 -0
  310. package/lib/typescript/src/web/mq.d.ts.map +1 -0
  311. package/lib/typescript/src/web/registry.d.ts +28 -0
  312. package/lib/typescript/src/web/registry.d.ts.map +1 -0
  313. package/lib/typescript/{web → src/web}/runtime.d.ts +9 -9
  314. package/lib/typescript/src/web/runtime.d.ts.map +1 -0
  315. package/lib/typescript/src/web/shadowRegistry.d.ts +16 -0
  316. package/lib/typescript/src/web/shadowRegistry.d.ts.map +1 -0
  317. package/lib/typescript/src/web/state.d.ts +18 -0
  318. package/lib/typescript/src/web/state.d.ts.map +1 -0
  319. package/lib/typescript/{web/utils.d.ts → src/web/utils/common.d.ts} +8 -9
  320. package/lib/typescript/src/web/utils/common.d.ts.map +1 -0
  321. package/lib/typescript/src/web/utils/index.d.ts +3 -0
  322. package/lib/typescript/src/web/utils/index.d.ts.map +1 -0
  323. package/lib/typescript/src/web/utils/unistyle.d.ts +20 -0
  324. package/lib/typescript/src/web/utils/unistyle.d.ts.map +1 -0
  325. package/lib/typescript/src/web/variants/getVariants.d.ts +3 -0
  326. package/lib/typescript/src/web/variants/getVariants.d.ts.map +1 -0
  327. package/lib/typescript/src/web/variants/index.d.ts +3 -0
  328. package/lib/typescript/src/web/variants/index.d.ts.map +1 -0
  329. package/lib/typescript/src/web/variants/useVariants.d.ts +3 -0
  330. package/lib/typescript/src/web/variants/useVariants.d.ts.map +1 -0
  331. package/nitrogen/generated/android/c++/JColorScheme.hpp +1 -1
  332. package/nitrogen/generated/android/c++/JFunc_void.hpp +48 -0
  333. package/nitrogen/generated/android/c++/JFunc_void_std__vector_UnistyleDependency_.hpp +8 -8
  334. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.cpp +31 -22
  335. package/nitrogen/generated/android/c++/JHybridNativePlatformSpec.hpp +8 -3
  336. package/nitrogen/generated/android/c++/JOrientation.hpp +1 -1
  337. package/nitrogen/generated/android/c++/JUnistyleDependency.hpp +4 -1
  338. package/nitrogen/generated/android/c++/JUnistylesNativeMiniRuntime.hpp +9 -7
  339. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/Func_void.kt +45 -0
  340. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/HybridNativePlatformSpec.kt +25 -5
  341. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistyleDependency.kt +2 -1
  342. package/nitrogen/generated/android/kotlin/com/margelo/nitro/unistyles/UnistylesNativeMiniRuntime.kt +2 -1
  343. package/nitrogen/generated/android/unistyles+autolinking.cmake +13 -1
  344. package/nitrogen/generated/android/{UnistylesOnLoad.cpp → unistylesOnLoad.cpp} +4 -2
  345. package/nitrogen/generated/android/{UnistylesOnLoad.hpp → unistylesOnLoad.hpp} +1 -1
  346. package/nitrogen/generated/ios/Unistyles+autolinking.rb +5 -3
  347. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.cpp +25 -0
  348. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp +53 -31
  349. package/nitrogen/generated/ios/Unistyles-Swift-Cxx-Umbrella.hpp +0 -29
  350. package/nitrogen/generated/ios/c++/HybridNativePlatformSpecSwift.hpp +7 -1
  351. package/nitrogen/generated/ios/swift/HybridNativePlatformSpec.swift +3 -13
  352. package/nitrogen/generated/ios/swift/HybridNativePlatformSpecCxx.swift +167 -104
  353. package/nitrogen/generated/ios/swift/UnistyleDependency.swift +4 -0
  354. package/nitrogen/generated/ios/swift/UnistylesNativeMiniRuntime.swift +16 -5
  355. package/nitrogen/generated/shared/c++/ColorScheme.hpp +2 -2
  356. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.cpp +2 -0
  357. package/nitrogen/generated/shared/c++/HybridNativePlatformSpec.hpp +5 -0
  358. package/nitrogen/generated/shared/c++/HybridUnistylesNavigationBarSpec.hpp +3 -0
  359. package/nitrogen/generated/shared/c++/HybridUnistylesRuntimeSpec.hpp +3 -0
  360. package/nitrogen/generated/shared/c++/HybridUnistylesShadowRegistrySpec.hpp +3 -0
  361. package/nitrogen/generated/shared/c++/HybridUnistylesStatusBarSpec.hpp +3 -0
  362. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.cpp +2 -1
  363. package/nitrogen/generated/shared/c++/HybridUnistylesStyleSheetSpec.hpp +10 -4
  364. package/nitrogen/generated/shared/c++/Orientation.hpp +2 -2
  365. package/nitrogen/generated/shared/c++/UnistyleDependency.hpp +2 -1
  366. package/nitrogen/generated/shared/c++/UnistylesCxxMiniRuntime.hpp +10 -9
  367. package/nitrogen/generated/shared/c++/UnistylesNativeMiniRuntime.hpp +9 -8
  368. package/package.json +18 -30
  369. package/plugin/common.js +12 -1
  370. package/plugin/index.js +110 -23
  371. package/plugin/ref.js +64 -13
  372. package/plugin/style.js +82 -22
  373. package/plugin/stylesheet.js +53 -3
  374. package/plugin/variants.js +33 -0
  375. package/src/common.js +4 -0
  376. package/src/core/createUnistylesComponent.js +6 -0
  377. package/src/core/createUnistylesComponent.native.js +31 -0
  378. package/src/core/createUnistylesComponent.native.tsx +44 -0
  379. package/src/core/createUnistylesComponent.tsx +10 -0
  380. package/src/core/index.js +3 -0
  381. package/src/core/index.ts +3 -0
  382. package/src/core/useBreakpoint.js +14 -0
  383. package/src/core/useBreakpoint.native.js +16 -0
  384. package/src/core/useBreakpoint.native.ts +21 -0
  385. package/src/core/useBreakpoint.ts +18 -0
  386. package/src/core/useTheme.js +14 -0
  387. package/src/core/useTheme.native.js +16 -0
  388. package/src/core/useTheme.native.ts +22 -0
  389. package/src/core/useTheme.ts +19 -0
  390. package/src/global.js +1 -0
  391. package/src/index.js +3 -0
  392. package/src/index.ts +2 -12
  393. package/src/mq.js +38 -0
  394. package/src/specs/NativePlatform/NativePlatform.nitro.js +19 -0
  395. package/src/specs/NativePlatform/NativePlatform.nitro.ts +7 -3
  396. package/src/specs/NativePlatform/index.js +1 -0
  397. package/src/specs/NavigtionBar/UnistylesNavigationBar.nitro.js +1 -0
  398. package/src/specs/NavigtionBar/index.js +9 -0
  399. package/src/specs/NavigtionBar/index.ts +6 -1
  400. package/src/specs/ShadowRegistry/ShadowRegistry.nitro.js +1 -0
  401. package/src/specs/ShadowRegistry/index.js +26 -0
  402. package/src/specs/ShadowRegistry/index.ts +10 -9
  403. package/src/specs/ShadowRegistry/types.js +1 -0
  404. package/src/specs/StatusBar/UnistylesStatusBar.nitro.js +1 -0
  405. package/src/specs/StatusBar/index.js +25 -0
  406. package/src/specs/StatusBar/index.ts +6 -1
  407. package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.js +1 -0
  408. package/src/specs/StyleSheet/UnistylesStyleSheet.nitro.ts +4 -1
  409. package/src/specs/StyleSheet/index.js +13 -0
  410. package/src/specs/StyleSheet/index.ts +6 -1
  411. package/src/specs/TurboUnistyles/NativeTurboUnistyles.js +2 -0
  412. package/src/specs/TurboUnistyles/index.js +1 -0
  413. package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.js +1 -0
  414. package/src/specs/UnistylesRuntime/UnistylesRuntime.nitro.ts +0 -1
  415. package/src/specs/UnistylesRuntime/index.js +20 -0
  416. package/src/specs/UnistylesRuntime/index.ts +4 -2
  417. package/src/specs/index.js +8 -0
  418. package/src/specs/index.ts +6 -2
  419. package/src/specs/index.web.js +2 -0
  420. package/src/specs/index.web.ts +1 -1
  421. package/src/specs/types.js +17 -0
  422. package/src/types/accessibility.js +30 -0
  423. package/src/types/breakpoints.js +1 -0
  424. package/src/types/breakpoints.ts +25 -13
  425. package/src/types/common.js +1 -0
  426. package/src/types/core.js +1 -0
  427. package/src/types/index.js +1 -0
  428. package/src/types/index.ts +1 -1
  429. package/src/types/stylesheet.js +2 -0
  430. package/src/types/stylesheet.ts +7 -5
  431. package/src/types/variants.js +1 -0
  432. package/src/types/variants.ts +7 -1
  433. package/src/web/convert/boxShadow.js +59 -0
  434. package/{web → src/web}/convert/boxShadow.ts +14 -15
  435. package/src/web/convert/index.js +56 -0
  436. package/{web → src/web}/convert/index.ts +8 -15
  437. package/src/web/convert/pseudo.js +131 -0
  438. package/src/web/convert/pseudo.ts +137 -0
  439. package/src/web/convert/shadow.js +50 -0
  440. package/src/web/convert/style.js +137 -0
  441. package/{web → src/web}/convert/style.ts +61 -10
  442. package/src/web/convert/textShadow.js +56 -0
  443. package/{web → src/web}/convert/textShadow.ts +13 -14
  444. package/src/web/convert/transform.js +65 -0
  445. package/{web → src/web}/convert/transform.ts +7 -8
  446. package/src/web/convert/types.js +2 -0
  447. package/{web → src/web}/convert/types.ts +1 -1
  448. package/src/web/convert/utils.js +39 -0
  449. package/src/web/create.js +36 -0
  450. package/src/web/create.ts +47 -0
  451. package/src/web/index.js +22 -0
  452. package/{web → src/web}/index.ts +3 -2
  453. package/src/web/listener.js +26 -0
  454. package/{web/listener → src/web}/listener.ts +3 -3
  455. package/src/web/mock.js +21 -0
  456. package/{web → src/web}/mock.ts +2 -12
  457. package/src/web/mq.js +14 -0
  458. package/{web → src/web}/mq.ts +1 -3
  459. package/src/web/registry.js +165 -0
  460. package/src/web/registry.ts +236 -0
  461. package/src/web/runtime.js +160 -0
  462. package/{web → src/web}/runtime.ts +21 -18
  463. package/src/web/shadowRegistry.js +96 -0
  464. package/src/web/shadowRegistry.ts +121 -0
  465. package/src/web/state.js +68 -0
  466. package/src/web/state.ts +94 -0
  467. package/src/web/utils/common.js +79 -0
  468. package/{web/utils.ts → src/web/utils/common.ts} +48 -36
  469. package/src/web/utils/index.js +2 -0
  470. package/src/web/utils/index.ts +2 -0
  471. package/src/web/utils/unistyle.js +72 -0
  472. package/src/web/utils/unistyle.ts +104 -0
  473. package/src/web/variants/getVariants.js +26 -0
  474. package/src/web/variants/getVariants.ts +42 -0
  475. package/src/web/variants/index.js +2 -0
  476. package/src/web/variants/index.ts +2 -0
  477. package/src/web/variants/useVariants.js +50 -0
  478. package/src/web/variants/useVariants.ts +65 -0
  479. package/lib/typescript/example/App.d.ts +0 -4
  480. package/lib/typescript/example/App.d.ts.map +0 -1
  481. package/lib/typescript/example/unistyles.d.ts +0 -63
  482. package/lib/typescript/example/unistyles.d.ts.map +0 -1
  483. package/lib/typescript/expo-example/App.d.ts +0 -4
  484. package/lib/typescript/expo-example/App.d.ts.map +0 -1
  485. package/lib/typescript/expo-example/unistyles.d.ts +0 -63
  486. package/lib/typescript/expo-example/unistyles.d.ts.map +0 -1
  487. package/lib/typescript/web/convert/boxShadow.d.ts +0 -3
  488. package/lib/typescript/web/convert/boxShadow.d.ts.map +0 -1
  489. package/lib/typescript/web/convert/breakpoint.d.ts +0 -3
  490. package/lib/typescript/web/convert/breakpoint.d.ts.map +0 -1
  491. package/lib/typescript/web/convert/index.d.ts +0 -4
  492. package/lib/typescript/web/convert/index.d.ts.map +0 -1
  493. package/lib/typescript/web/convert/shadow.d.ts.map +0 -1
  494. package/lib/typescript/web/convert/style.d.ts +0 -3
  495. package/lib/typescript/web/convert/style.d.ts.map +0 -1
  496. package/lib/typescript/web/convert/textShadow.d.ts +0 -3
  497. package/lib/typescript/web/convert/textShadow.d.ts.map +0 -1
  498. package/lib/typescript/web/convert/transform.d.ts +0 -5
  499. package/lib/typescript/web/convert/transform.d.ts.map +0 -1
  500. package/lib/typescript/web/convert/types.d.ts.map +0 -1
  501. package/lib/typescript/web/convert/utils.d.ts.map +0 -1
  502. package/lib/typescript/web/create.d.ts +0 -2449
  503. package/lib/typescript/web/index.d.ts +0 -2464
  504. package/lib/typescript/web/listener/index.d.ts +0 -2
  505. package/lib/typescript/web/listener/index.d.ts.map +0 -1
  506. package/lib/typescript/web/listener/listener.d.ts.map +0 -1
  507. package/lib/typescript/web/mock.d.ts +0 -14
  508. package/lib/typescript/web/mock.d.ts.map +0 -1
  509. package/lib/typescript/web/mq.d.ts +0 -4
  510. package/lib/typescript/web/mq.d.ts.map +0 -1
  511. package/lib/typescript/web/pseudo.d.ts +0 -4
  512. package/lib/typescript/web/pseudo.d.ts.map +0 -1
  513. package/lib/typescript/web/registry.d.ts +0 -12
  514. package/lib/typescript/web/registry.d.ts.map +0 -1
  515. package/lib/typescript/web/runtime.d.ts.map +0 -1
  516. package/lib/typescript/web/state.d.ts +0 -24
  517. package/lib/typescript/web/state.d.ts.map +0 -1
  518. package/lib/typescript/web/useVariants.d.ts +0 -3
  519. package/lib/typescript/web/useVariants.d.ts.map +0 -1
  520. package/lib/typescript/web/utils.d.ts.map +0 -1
  521. package/plugin/__tests__/dependencies.spec.js +0 -360
  522. package/plugin/__tests__/ref.spec.js +0 -991
  523. package/plugin/__tests__/stylesheet.spec.js +0 -396
  524. package/web/convert/breakpoint.ts +0 -21
  525. package/web/create.ts +0 -102
  526. package/web/listener/index.ts +0 -1
  527. package/web/pseudo.ts +0 -11
  528. package/web/registry.ts +0 -41
  529. package/web/state.ts +0 -148
  530. package/web/useVariants.ts +0 -99
  531. /package/lib/typescript/{web → src/web}/convert/shadow.d.ts +0 -0
  532. /package/lib/typescript/{web → src/web}/convert/utils.d.ts +0 -0
  533. /package/nitrogen/generated/android/{UnistylesOnLoad.kt → unistylesOnLoad.kt} +0 -0
  534. /package/{web → src/web}/convert/module.d.ts +0 -0
  535. /package/{web → src/web}/convert/shadow.ts +0 -0
  536. /package/{web → src/web}/convert/utils.ts +0 -0
@@ -21,10 +21,8 @@ import com.margelo.nitro.core.*
21
21
  @Keep
22
22
  @Suppress("RedundantSuppression", "KotlinJniMissingFunction", "PropertyName", "RedundantUnitReturnType", "unused")
23
23
  abstract class HybridNativePlatformSpec: HybridObject() {
24
- protected val TAG = "HybridNativePlatformSpec"
25
-
26
24
  @DoNotStrip
27
- val mHybridData: HybridData = initHybrid()
25
+ private var mHybridData: HybridData = initHybrid()
28
26
 
29
27
  init {
30
28
  // Pass this `HybridData` through to it's base class,
@@ -32,6 +30,13 @@ abstract class HybridNativePlatformSpec: HybridObject() {
32
30
  super.updateNative(mHybridData)
33
31
  }
34
32
 
33
+ /**
34
+ * Call from a child class to initialize HybridData with a child.
35
+ */
36
+ override fun updateNative(hybridData: HybridData) {
37
+ mHybridData = hybridData
38
+ }
39
+
35
40
  // Properties
36
41
 
37
42
 
@@ -111,9 +116,24 @@ abstract class HybridNativePlatformSpec: HybridObject() {
111
116
  @DoNotStrip
112
117
  @Keep
113
118
  private fun registerPlatformListener(callback: Func_void_std__vector_UnistyleDependency_): Unit {
114
- val result = registerPlatformListener(callback.toLambda())
115
- return result
119
+ val __result = registerPlatformListener(callback.toLambda())
120
+ return __result
116
121
  }
122
+
123
+ @DoNotStrip
124
+ @Keep
125
+ abstract fun registerImeListener(callback: () -> Unit): Unit
126
+
127
+ @DoNotStrip
128
+ @Keep
129
+ private fun registerImeListener(callback: Func_void): Unit {
130
+ val __result = registerImeListener(callback.toLambda())
131
+ return __result
132
+ }
133
+
134
+ @DoNotStrip
135
+ @Keep
136
+ abstract fun unregisterPlatformListeners(): Unit
117
137
 
118
138
  private external fun initHybrid(): HybridData
119
139
 
@@ -29,5 +29,6 @@ enum class UnistyleDependency {
29
29
  PIXELRATIO,
30
30
  FONTSCALE,
31
31
  STATUSBAR,
32
- NAVIGATIONBAR
32
+ NAVIGATIONBAR,
33
+ IME
33
34
  }
@@ -25,5 +25,6 @@ data class UnistylesNativeMiniRuntime(
25
25
  val rtl: Boolean,
26
26
  val statusBar: Dimensions,
27
27
  val navigationBar: Dimensions,
28
- val orientation: Orientation
28
+ val isPortrait: Boolean,
29
+ val isLandscape: Boolean
29
30
  )
@@ -47,6 +47,18 @@ target_link_libraries(
47
47
  unistyles
48
48
  fbjni::fbjni # <-- Facebook C++ JNI helpers
49
49
  ReactAndroid::jsi # <-- RN: JSI
50
- ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core
51
50
  react-native-nitro-modules::NitroModules # <-- NitroModules Core :)
52
51
  )
52
+
53
+ # Link react-native (different prefab between RN 0.75 and RN 0.76)
54
+ if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
55
+ target_link_libraries(
56
+ unistyles
57
+ ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab
58
+ )
59
+ else()
60
+ target_link_libraries(
61
+ unistyles
62
+ ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core
63
+ )
64
+ endif()
@@ -1,11 +1,11 @@
1
1
  ///
2
- /// UnistylesOnLoad.cpp
2
+ /// unistylesOnLoad.cpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © 2024 Marc Rousavy @ Margelo
6
6
  ///
7
7
 
8
- #include "UnistylesOnLoad.hpp"
8
+ #include "unistylesOnLoad.hpp"
9
9
 
10
10
  #include <jni.h>
11
11
  #include <fbjni/fbjni.h>
@@ -13,6 +13,7 @@
13
13
 
14
14
  #include "JHybridNativePlatformSpec.hpp"
15
15
  #include "JFunc_void_std__vector_UnistyleDependency_.hpp"
16
+ #include "JFunc_void.hpp"
16
17
 
17
18
  namespace margelo::nitro::unistyles {
18
19
 
@@ -25,6 +26,7 @@ int initialize(JavaVM* vm) {
25
26
  // Register native JNI methods
26
27
  margelo::nitro::unistyles::JHybridNativePlatformSpec::registerNatives();
27
28
  margelo::nitro::unistyles::JFunc_void_std__vector_UnistyleDependency_::registerNatives();
29
+ margelo::nitro::unistyles::JFunc_void::registerNatives();
28
30
 
29
31
  // Register Nitro Hybrid Objects
30
32
 
@@ -1,5 +1,5 @@
1
1
  ///
2
- /// UnistylesOnLoad.hpp
2
+ /// unistylesOnLoad.hpp
3
3
  /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
4
  /// https://github.com/mrousavy/nitro
5
5
  /// Copyright © 2024 Marc Rousavy @ Margelo
@@ -24,7 +24,7 @@ def add_nitrogen_files(spec)
24
24
 
25
25
  spec.dependency "NitroModules"
26
26
 
27
- current_source_files = spec.attributes_hash['source_files'] || []
27
+ current_source_files = Array(spec.attributes_hash['source_files'])
28
28
  spec.source_files = current_source_files + [
29
29
  # Generated cross-platform specs
30
30
  "nitrogen/generated/shared/**/*.{h,hpp,c,cpp,swift}",
@@ -32,7 +32,7 @@ def add_nitrogen_files(spec)
32
32
  "nitrogen/generated/ios/**/*.{h,hpp,c,cpp,mm,swift}",
33
33
  ]
34
34
 
35
- current_public_header_files = spec.attributes_hash['public_header_files'] || []
35
+ current_public_header_files = Array(spec.attributes_hash['public_header_files'])
36
36
  spec.public_header_files = current_public_header_files + [
37
37
  # Generated specs
38
38
  "nitrogen/generated/shared/**/*.{h,hpp}",
@@ -40,7 +40,7 @@ def add_nitrogen_files(spec)
40
40
  "nitrogen/generated/ios/Unistyles-Swift-Cxx-Bridge.hpp"
41
41
  ]
42
42
 
43
- current_private_header_files = spec.attributes_hash['private_header_files'] || []
43
+ current_private_header_files = Array(spec.attributes_hash['private_header_files'])
44
44
  spec.private_header_files = current_private_header_files + [
45
45
  # iOS specific specs
46
46
  "nitrogen/generated/ios/c++/**/*.{h,hpp}",
@@ -52,5 +52,7 @@ def add_nitrogen_files(spec)
52
52
  "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
53
53
  # Enables C++ <-> Swift interop (by default it's only C)
54
54
  "SWIFT_OBJC_INTEROP_MODE" => "objcxx",
55
+ # Enables stricter modular headers
56
+ "DEFINES_MODULE" => "YES",
55
57
  })
56
58
  end
@@ -6,3 +6,28 @@
6
6
  ///
7
7
 
8
8
  #include "Unistyles-Swift-Cxx-Bridge.hpp"
9
+
10
+ // Include C++ implementation defined types
11
+ #include "HybridNativePlatformSpecSwift.hpp"
12
+ #include "Unistyles-Swift-Cxx-Umbrella.hpp"
13
+ #include <NitroModules/HybridContext.hpp>
14
+
15
+ namespace margelo::nitro::unistyles::bridge::swift {
16
+
17
+ // pragma MARK: std::shared_ptr<margelo::nitro::unistyles::HybridNativePlatformSpec>
18
+ std::shared_ptr<margelo::nitro::unistyles::HybridNativePlatformSpec> create_std__shared_ptr_margelo__nitro__unistyles__HybridNativePlatformSpec_(void* _Nonnull swiftUnsafePointer) {
19
+ Unistyles::HybridNativePlatformSpecCxx swiftPart = Unistyles::HybridNativePlatformSpecCxxUnsafe::fromUnsafe(swiftUnsafePointer);
20
+ return HybridContext::getOrCreate<margelo::nitro::unistyles::HybridNativePlatformSpecSwift>(swiftPart);
21
+ }
22
+ void* _Nonnull get_std__shared_ptr_margelo__nitro__unistyles__HybridNativePlatformSpec_(std__shared_ptr_margelo__nitro__unistyles__HybridNativePlatformSpec_ cppType) {
23
+ std::shared_ptr<margelo::nitro::unistyles::HybridNativePlatformSpecSwift> swiftWrapper = std::dynamic_pointer_cast<margelo::nitro::unistyles::HybridNativePlatformSpecSwift>(cppType);
24
+ #ifdef NITRO_DEBUG
25
+ if (swiftWrapper == nullptr) [[unlikely]] {
26
+ throw std::runtime_error("Class \"HybridNativePlatformSpec\" is not implemented in Swift!");
27
+ }
28
+ #endif
29
+ Unistyles::HybridNativePlatformSpecCxx swiftPart = swiftWrapper->getSwiftPart();
30
+ return Unistyles::HybridNativePlatformSpecCxxUnsafe::toUnsafe(swiftPart);
31
+ }
32
+
33
+ } // namespace margelo::nitro::unistyles::bridge::swift
@@ -8,28 +8,21 @@
8
8
  #pragma once
9
9
 
10
10
  // Forward declarations of C++ defined types
11
+ // Forward declaration of `HybridNativePlatformSpec` to properly resolve imports.
12
+ namespace margelo::nitro::unistyles { class HybridNativePlatformSpec; }
11
13
  // Forward declaration of `UnistyleDependency` to properly resolve imports.
12
14
  namespace margelo::nitro::unistyles { enum class UnistyleDependency; }
13
15
 
16
+ // Forward declarations of Swift defined types
17
+ // Forward declaration of `HybridNativePlatformSpecCxx` to properly resolve imports.
18
+ namespace Unistyles { class HybridNativePlatformSpecCxx; }
19
+
14
20
  // Include C++ defined types
15
- #if __has_include("UnistyleDependency.hpp")
16
- #include "UnistyleDependency.hpp"
17
- #endif
18
- #if __has_include(<functional>)
19
- #include <functional>
20
- #endif
21
- #if __has_include(<memory>)
22
- #include <memory>
23
- #endif
24
- #if __has_include(<optional>)
25
- #include <optional>
26
- #endif
27
- #if __has_include(<string>)
28
- #include <string>
29
- #endif
30
- #if __has_include(<vector>)
31
- #include <vector>
32
- #endif
21
+ #include "HybridNativePlatformSpec.hpp"
22
+ #include "UnistyleDependency.hpp"
23
+ #include <functional>
24
+ #include <memory>
25
+ #include <vector>
33
26
 
34
27
  /**
35
28
  * Contains specialized versions of C++ templated types so they can be accessed from Swift,
@@ -37,6 +30,7 @@ namespace margelo::nitro::unistyles { enum class UnistyleDependency; }
37
30
  */
38
31
  namespace margelo::nitro::unistyles::bridge::swift {
39
32
 
33
+ // pragma MARK: std::vector<UnistyleDependency>
40
34
  /**
41
35
  * Specialized version of `std::vector<UnistyleDependency>`.
42
36
  */
@@ -47,6 +41,7 @@ namespace margelo::nitro::unistyles::bridge::swift {
47
41
  return vector;
48
42
  }
49
43
 
44
+ // pragma MARK: std::function<void(const std::vector<UnistyleDependency>& /* dependencies */)>
50
45
  /**
51
46
  * Specialized version of `std::function<void(const std::vector<UnistyleDependency>&)>`.
52
47
  */
@@ -54,18 +49,17 @@ namespace margelo::nitro::unistyles::bridge::swift {
54
49
  /**
55
50
  * Wrapper class for a `std::function<void(const std::vector<UnistyleDependency>& / * dependencies * /)>`, this can be used from Swift.
56
51
  */
57
- class Func_void_std__vector_UnistyleDependency__Wrapper {
52
+ class Func_void_std__vector_UnistyleDependency__Wrapper final {
58
53
  public:
59
- explicit Func_void_std__vector_UnistyleDependency__Wrapper(const std::function<void(const std::vector<UnistyleDependency>& /* dependencies */)>& func): function(func) {}
60
- explicit Func_void_std__vector_UnistyleDependency__Wrapper(std::function<void(const std::vector<UnistyleDependency>& /* dependencies */)>&& func): function(std::move(func)) {}
61
-
62
- void call(std::vector<UnistyleDependency> dependencies) const {
63
- function(dependencies);
54
+ explicit Func_void_std__vector_UnistyleDependency__Wrapper(const std::function<void(const std::vector<UnistyleDependency>& /* dependencies */)>& func): _function(func) {}
55
+ explicit Func_void_std__vector_UnistyleDependency__Wrapper(std::function<void(const std::vector<UnistyleDependency>& /* dependencies */)>&& func): _function(std::move(func)) {}
56
+ inline void call(std::vector<UnistyleDependency> dependencies) const {
57
+ _function(dependencies);
64
58
  }
65
-
66
- std::function<void(const std::vector<UnistyleDependency>& /* dependencies */)> function;
59
+ private:
60
+ std::function<void(const std::vector<UnistyleDependency>& /* dependencies */)> _function;
67
61
  };
68
- inline Func_void_std__vector_UnistyleDependency_ create_Func_void_std__vector_UnistyleDependency_(void* closureHolder, void(*call)(void* /* closureHolder */, std::vector<UnistyleDependency>), void(*destroy)(void*)) {
62
+ inline Func_void_std__vector_UnistyleDependency_ create_Func_void_std__vector_UnistyleDependency_(void* _Nonnull closureHolder, void(* _Nonnull call)(void* _Nonnull /* closureHolder */, std::vector<UnistyleDependency>), void(* _Nonnull destroy)(void* _Nonnull)) {
69
63
  std::shared_ptr<void> sharedClosureHolder(closureHolder, destroy);
70
64
  return Func_void_std__vector_UnistyleDependency_([sharedClosureHolder, call](const std::vector<UnistyleDependency>& dependencies) -> void {
71
65
  call(sharedClosureHolder.get(), dependencies);
@@ -75,12 +69,40 @@ namespace margelo::nitro::unistyles::bridge::swift {
75
69
  return std::make_shared<Func_void_std__vector_UnistyleDependency__Wrapper>(value);
76
70
  }
77
71
 
72
+ // pragma MARK: std::function<void()>
78
73
  /**
79
- * Specialized version of `std::optional<std::string>`.
74
+ * Specialized version of `std::function<void()>`.
80
75
  */
81
- using std__optional_std__string_ = std::optional<std::string>;
82
- inline std::optional<std::string> create_std__optional_std__string_(const std::string& value) {
83
- return std::optional<std::string>(value);
76
+ using Func_void = std::function<void()>;
77
+ /**
78
+ * Wrapper class for a `std::function<void()>`, this can be used from Swift.
79
+ */
80
+ class Func_void_Wrapper final {
81
+ public:
82
+ explicit Func_void_Wrapper(const std::function<void()>& func): _function(func) {}
83
+ explicit Func_void_Wrapper(std::function<void()>&& func): _function(std::move(func)) {}
84
+ inline void call() const {
85
+ _function();
86
+ }
87
+ private:
88
+ std::function<void()> _function;
89
+ };
90
+ inline Func_void create_Func_void(void* _Nonnull closureHolder, void(* _Nonnull call)(void* _Nonnull /* closureHolder */), void(* _Nonnull destroy)(void* _Nonnull)) {
91
+ std::shared_ptr<void> sharedClosureHolder(closureHolder, destroy);
92
+ return Func_void([sharedClosureHolder, call]() -> void {
93
+ call(sharedClosureHolder.get());
94
+ });
95
+ }
96
+ inline std::shared_ptr<Func_void_Wrapper> share_Func_void(const Func_void& value) {
97
+ return std::make_shared<Func_void_Wrapper>(value);
84
98
  }
99
+
100
+ // pragma MARK: std::shared_ptr<margelo::nitro::unistyles::HybridNativePlatformSpec>
101
+ /**
102
+ * Specialized version of `std::shared_ptr<margelo::nitro::unistyles::HybridNativePlatformSpec>`.
103
+ */
104
+ using std__shared_ptr_margelo__nitro__unistyles__HybridNativePlatformSpec_ = std::shared_ptr<margelo::nitro::unistyles::HybridNativePlatformSpec>;
105
+ std::shared_ptr<margelo::nitro::unistyles::HybridNativePlatformSpec> create_std__shared_ptr_margelo__nitro__unistyles__HybridNativePlatformSpec_(void* _Nonnull swiftUnsafePointer);
106
+ void* _Nonnull get_std__shared_ptr_margelo__nitro__unistyles__HybridNativePlatformSpec_(std__shared_ptr_margelo__nitro__unistyles__HybridNativePlatformSpec_ cppType);
85
107
 
86
108
  } // namespace margelo::nitro::unistyles::bridge::swift
@@ -14,24 +14,12 @@ namespace margelo::nitro::unistyles { enum class ColorScheme; }
14
14
  namespace margelo::nitro::unistyles { struct Dimensions; }
15
15
  // Forward declaration of `HybridNativePlatformSpec` to properly resolve imports.
16
16
  namespace margelo::nitro::unistyles { class HybridNativePlatformSpec; }
17
- // Forward declaration of `HybridUnistylesNavigationBarSpec` to properly resolve imports.
18
- namespace margelo::nitro::unistyles { class HybridUnistylesNavigationBarSpec; }
19
- // Forward declaration of `HybridUnistylesRuntimeSpec` to properly resolve imports.
20
- namespace margelo::nitro::unistyles { class HybridUnistylesRuntimeSpec; }
21
- // Forward declaration of `HybridUnistylesShadowRegistrySpec` to properly resolve imports.
22
- namespace margelo::nitro::unistyles { class HybridUnistylesShadowRegistrySpec; }
23
- // Forward declaration of `HybridUnistylesStatusBarSpec` to properly resolve imports.
24
- namespace margelo::nitro::unistyles { class HybridUnistylesStatusBarSpec; }
25
- // Forward declaration of `HybridUnistylesStyleSheetSpec` to properly resolve imports.
26
- namespace margelo::nitro::unistyles { class HybridUnistylesStyleSheetSpec; }
27
17
  // Forward declaration of `Insets` to properly resolve imports.
28
18
  namespace margelo::nitro::unistyles { struct Insets; }
29
19
  // Forward declaration of `Orientation` to properly resolve imports.
30
20
  namespace margelo::nitro::unistyles { enum class Orientation; }
31
21
  // Forward declaration of `UnistyleDependency` to properly resolve imports.
32
22
  namespace margelo::nitro::unistyles { enum class UnistyleDependency; }
33
- // Forward declaration of `UnistylesCxxMiniRuntime` to properly resolve imports.
34
- namespace margelo::nitro::unistyles { struct UnistylesCxxMiniRuntime; }
35
23
  // Forward declaration of `UnistylesNativeMiniRuntime` to properly resolve imports.
36
24
  namespace margelo::nitro::unistyles { struct UnistylesNativeMiniRuntime; }
37
25
 
@@ -39,19 +27,12 @@ namespace margelo::nitro::unistyles { struct UnistylesNativeMiniRuntime; }
39
27
  #include "ColorScheme.hpp"
40
28
  #include "Dimensions.hpp"
41
29
  #include "HybridNativePlatformSpec.hpp"
42
- #include "HybridUnistylesNavigationBarSpec.hpp"
43
- #include "HybridUnistylesRuntimeSpec.hpp"
44
- #include "HybridUnistylesShadowRegistrySpec.hpp"
45
- #include "HybridUnistylesStatusBarSpec.hpp"
46
- #include "HybridUnistylesStyleSheetSpec.hpp"
47
30
  #include "Insets.hpp"
48
31
  #include "Orientation.hpp"
49
32
  #include "UnistyleDependency.hpp"
50
- #include "UnistylesCxxMiniRuntime.hpp"
51
33
  #include "UnistylesNativeMiniRuntime.hpp"
52
34
  #include <functional>
53
35
  #include <memory>
54
- #include <optional>
55
36
  #include <string>
56
37
  #include <vector>
57
38
 
@@ -67,16 +48,6 @@ namespace margelo::nitro::unistyles { struct UnistylesNativeMiniRuntime; }
67
48
  // Forward declarations of Swift defined types
68
49
  // Forward declaration of `HybridNativePlatformSpecCxx` to properly resolve imports.
69
50
  namespace Unistyles { class HybridNativePlatformSpecCxx; }
70
- // Forward declaration of `HybridUnistylesNavigationBarSpecCxx` to properly resolve imports.
71
- namespace Unistyles { class HybridUnistylesNavigationBarSpecCxx; }
72
- // Forward declaration of `HybridUnistylesRuntimeSpecCxx` to properly resolve imports.
73
- namespace Unistyles { class HybridUnistylesRuntimeSpecCxx; }
74
- // Forward declaration of `HybridUnistylesShadowRegistrySpecCxx` to properly resolve imports.
75
- namespace Unistyles { class HybridUnistylesShadowRegistrySpecCxx; }
76
- // Forward declaration of `HybridUnistylesStatusBarSpecCxx` to properly resolve imports.
77
- namespace Unistyles { class HybridUnistylesStatusBarSpecCxx; }
78
- // Forward declaration of `HybridUnistylesStyleSheetSpecCxx` to properly resolve imports.
79
- namespace Unistyles { class HybridUnistylesStyleSheetSpecCxx; }
80
51
 
81
52
  // Include Swift defined types
82
53
  #if __has_include("Unistyles-Swift.h")
@@ -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):
@@ -143,6 +143,12 @@ namespace margelo::nitro::unistyles {
143
143
  inline void registerPlatformListener(const std::function<void(const std::vector<UnistyleDependency>& /* dependencies */)>& callback) override {
144
144
  _swiftPart.registerPlatformListener(callback);
145
145
  }
146
+ inline void registerImeListener(const std::function<void()>& callback) override {
147
+ _swiftPart.registerImeListener(callback);
148
+ }
149
+ inline void unregisterPlatformListeners() override {
150
+ _swiftPart.unregisterPlatformListeners();
151
+ }
146
152
 
147
153
  private:
148
154
  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
 
@@ -50,16 +50,6 @@ public protocol HybridNativePlatformSpec: HybridObjectSpec {
50
50
  func setImmersiveMode(isEnabled: Bool) throws -> Void
51
51
  func getMiniRuntime() throws -> UnistylesNativeMiniRuntime
52
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
- }
53
+ func registerImeListener(callback: @escaping (() -> Void)) throws -> Void
54
+ func unregisterPlatformListeners() throws -> Void
65
55
  }