react-nitro-renderer 0.0.0-stage → 0.0.1-alpha.7

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 (247) hide show
  1. package/LICENSE +21 -0
  2. package/Package.swift +104 -0
  3. package/README.md +111 -2
  4. package/Sources/ReactNitroRenderer/Animations/AnimationCurve+toUIAnimationCurve.swift +31 -0
  5. package/Sources/ReactNitroRenderer/Animations/HybridAnimator.swift +36 -0
  6. package/Sources/ReactNitroRenderer/Animations/View+Animations.swift +39 -0
  7. package/Sources/ReactNitroRenderer/Components/HybridLabel.swift +89 -0
  8. package/Sources/ReactNitroRenderer/Components/HybridScrollView.swift +21 -0
  9. package/Sources/ReactNitroRenderer/Components/HybridScrollViewContent.swift +36 -0
  10. package/Sources/ReactNitroRenderer/Components/HybridView.swift +22 -0
  11. package/Sources/ReactNitroRenderer/Components/View.swift +267 -0
  12. package/Sources/ReactNitroRenderer/CustomViewController.swift +36 -0
  13. package/Sources/ReactNitroRenderer/Extensions/Corner+toCACornerMask.swift +16 -0
  14. package/Sources/ReactNitroRenderer/Extensions/CornerCurve+toUICornerCurve.swift +23 -0
  15. package/Sources/ReactNitroRenderer/Extensions/EdgeInsets+UIEdgeInsets.swift +7 -0
  16. package/Sources/ReactNitroRenderer/Extensions/ModifierKey+toUIKeyModifierFlags.swift +31 -0
  17. package/Sources/ReactNitroRenderer/Extensions/Point+CGPoint.swift +15 -0
  18. package/Sources/ReactNitroRenderer/Extensions/UIGestureRecognizerState+toUIGestureRecognizerState.swift +39 -0
  19. package/Sources/ReactNitroRenderer/Gestures/HybridGestureRecognizer.swift +40 -0
  20. package/Sources/ReactNitroRenderer/Gestures/HybridLongPressGestureRecognizer.swift +53 -0
  21. package/Sources/ReactNitroRenderer/Gestures/HybridPanGestureRecognizer.swift +52 -0
  22. package/Sources/ReactNitroRenderer/Gestures/HybridTapGestureRecognizer.swift +42 -0
  23. package/Sources/ReactNitroRenderer/HybridApplication.swift +19 -0
  24. package/Sources/ReactNitroRenderer/HybridScreen.swift +22 -0
  25. package/Sources/ReactNitroRenderer/HybridViewController.swift +66 -0
  26. package/Sources/ReactNitroRenderer/HybridWindow.swift +25 -0
  27. package/Sources/ReactNitroRenderer/HybridWindowScene.swift +16 -0
  28. package/Sources/ReactNitroRenderer/RegisterRootCallback.swift +28 -0
  29. package/Sources/ReactNitroRenderer/RuntimeReloadableAppDelegate.swift +14 -0
  30. package/Sources/ReactNitroRenderer/SafeAreaInsetsListeners.swift +22 -0
  31. package/Sources/ReactNitroRenderer/UIColor+initRGBA.swift +10 -0
  32. package/Sources/ReactNitroRenderer/UIColor+rgba.swift +20 -0
  33. package/Sources/ReactNitroRenderer/ViewController.swift +13 -0
  34. package/Sources/ReactNitroRenderer/Window.swift +12 -0
  35. package/Sources/ReactNitroRenderer/WindowScene.swift +12 -0
  36. package/Sources/ReactNitroRenderer/YGNode.swift +46 -0
  37. package/nitrogen/generated/.gitattributes +1 -0
  38. package/nitrogen/generated/apple/ReactNitroRenderer-Swift-Cxx-Bridge.cpp +376 -0
  39. package/nitrogen/generated/apple/ReactNitroRendererAppleCxx/ReactNitroRendererAppleCxx.cpp +9 -0
  40. package/nitrogen/generated/apple/ReactNitroRendererAppleCxx/include/ReactNitroRendererAppleCxx/ReactNitroRendererAppleCxx.h +245 -0
  41. package/nitrogen/generated/apple/ReactNitroRendererAutolinking.cpp +46 -0
  42. package/nitrogen/generated/apple/ReactNitroRendererAutolinking.mm +24 -0
  43. package/nitrogen/generated/apple/c++/AnimationCurve-Swift.cpp +42 -0
  44. package/nitrogen/generated/apple/c++/Corner-Swift.cpp +52 -0
  45. package/nitrogen/generated/apple/c++/CornerCurve-Swift.cpp +46 -0
  46. package/nitrogen/generated/apple/c++/EdgeInsets-Swift.cpp +35 -0
  47. package/nitrogen/generated/apple/c++/Frame-Swift.cpp +35 -0
  48. package/nitrogen/generated/apple/c++/GestureRecognizerState-Swift.cpp +44 -0
  49. package/nitrogen/generated/apple/c++/HybridAnimatorSpecSwift.cpp +53 -0
  50. package/nitrogen/generated/apple/c++/HybridAnimatorSpec_cxx-Swift.cpp +28 -0
  51. package/nitrogen/generated/apple/c++/HybridApplicationSpecSwift.cpp +58 -0
  52. package/nitrogen/generated/apple/c++/HybridApplicationSpec_cxx-Swift.cpp +28 -0
  53. package/nitrogen/generated/apple/c++/HybridGestureRecognizerSpecSwift.cpp +48 -0
  54. package/nitrogen/generated/apple/c++/HybridGestureRecognizerSpec_cxx-Swift.cpp +28 -0
  55. package/nitrogen/generated/apple/c++/HybridLabelSpecSwift.cpp +49 -0
  56. package/nitrogen/generated/apple/c++/HybridLabelSpec_cxx-Swift.cpp +28 -0
  57. package/nitrogen/generated/apple/c++/HybridLongPressGestureRecognizerSpecSwift.cpp +85 -0
  58. package/nitrogen/generated/apple/c++/HybridLongPressGestureRecognizerSpec_cxx-Swift.cpp +28 -0
  59. package/nitrogen/generated/apple/c++/HybridPanGestureRecognizerSpecSwift.cpp +89 -0
  60. package/nitrogen/generated/apple/c++/HybridPanGestureRecognizerSpec_cxx-Swift.cpp +28 -0
  61. package/nitrogen/generated/apple/c++/HybridScreenSpecSwift.cpp +44 -0
  62. package/nitrogen/generated/apple/c++/HybridScreenSpec_cxx-Swift.cpp +28 -0
  63. package/nitrogen/generated/apple/c++/HybridScrollViewContentSpecSwift.cpp +40 -0
  64. package/nitrogen/generated/apple/c++/HybridScrollViewContentSpec_cxx-Swift.cpp +28 -0
  65. package/nitrogen/generated/apple/c++/HybridScrollViewSpecSwift.cpp +40 -0
  66. package/nitrogen/generated/apple/c++/HybridScrollViewSpec_cxx-Swift.cpp +28 -0
  67. package/nitrogen/generated/apple/c++/HybridTapGestureRecognizerSpecSwift.cpp +67 -0
  68. package/nitrogen/generated/apple/c++/HybridTapGestureRecognizerSpec_cxx-Swift.cpp +28 -0
  69. package/nitrogen/generated/apple/c++/HybridViewControllerSpecSwift.cpp +91 -0
  70. package/nitrogen/generated/apple/c++/HybridViewControllerSpec_cxx-Swift.cpp +28 -0
  71. package/nitrogen/generated/apple/c++/HybridViewSpecSwift.cpp +231 -0
  72. package/nitrogen/generated/apple/c++/HybridViewSpec_cxx-Swift.cpp +28 -0
  73. package/nitrogen/generated/apple/c++/HybridWindowSceneSpecSwift.cpp +34 -0
  74. package/nitrogen/generated/apple/c++/HybridWindowSceneSpec_cxx-Swift.cpp +28 -0
  75. package/nitrogen/generated/apple/c++/HybridWindowSpecSwift.cpp +53 -0
  76. package/nitrogen/generated/apple/c++/HybridWindowSpec_cxx-Swift.cpp +28 -0
  77. package/nitrogen/generated/apple/c++/ListenerSubscription-Swift.cpp +37 -0
  78. package/nitrogen/generated/apple/c++/ModifierKey-Swift.cpp +52 -0
  79. package/nitrogen/generated/apple/c++/Point-Swift.cpp +33 -0
  80. package/nitrogen/generated/apple/c++/Point3D-Swift.cpp +34 -0
  81. package/nitrogen/generated/apple/c++/Size-Swift.cpp +33 -0
  82. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/ReactNitroRendererAutolinking.hpp +13 -0
  83. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/AnimationCurve-Swift.hpp +23 -0
  84. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/Corner-Swift.hpp +23 -0
  85. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/CornerCurve-Swift.hpp +23 -0
  86. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/EdgeInsets-Swift.hpp +23 -0
  87. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/Frame-Swift.hpp +23 -0
  88. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/GestureRecognizerState-Swift.hpp +23 -0
  89. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridAnimatorSpecSwift.hpp +73 -0
  90. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridAnimatorSpec_cxx-Swift.hpp +23 -0
  91. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridApplicationSpecSwift.hpp +74 -0
  92. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridApplicationSpec_cxx-Swift.hpp +23 -0
  93. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridGestureRecognizerSpecSwift.hpp +74 -0
  94. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridGestureRecognizerSpec_cxx-Swift.hpp +23 -0
  95. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridLabelSpecSwift.hpp +74 -0
  96. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridLabelSpec_cxx-Swift.hpp +23 -0
  97. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridLongPressGestureRecognizerSpecSwift.hpp +82 -0
  98. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridLongPressGestureRecognizerSpec_cxx-Swift.hpp +23 -0
  99. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridPanGestureRecognizerSpecSwift.hpp +80 -0
  100. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridPanGestureRecognizerSpec_cxx-Swift.hpp +23 -0
  101. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScreenSpecSwift.hpp +73 -0
  102. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScreenSpec_cxx-Swift.hpp +23 -0
  103. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScrollViewContentSpecSwift.hpp +72 -0
  104. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScrollViewContentSpec_cxx-Swift.hpp +23 -0
  105. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScrollViewSpecSwift.hpp +72 -0
  106. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridScrollViewSpec_cxx-Swift.hpp +23 -0
  107. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridTapGestureRecognizerSpecSwift.hpp +78 -0
  108. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridTapGestureRecognizerSpec_cxx-Swift.hpp +23 -0
  109. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridViewControllerSpecSwift.hpp +77 -0
  110. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridViewControllerSpec_cxx-Swift.hpp +23 -0
  111. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridViewSpecSwift.hpp +102 -0
  112. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridViewSpec_cxx-Swift.hpp +23 -0
  113. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridWindowSceneSpecSwift.hpp +71 -0
  114. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridWindowSceneSpec_cxx-Swift.hpp +23 -0
  115. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridWindowSpecSwift.hpp +74 -0
  116. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/HybridWindowSpec_cxx-Swift.hpp +23 -0
  117. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/ListenerSubscription-Swift.hpp +23 -0
  118. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/ModifierKey-Swift.hpp +23 -0
  119. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/Point-Swift.hpp +23 -0
  120. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/Point3D-Swift.hpp +23 -0
  121. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/ReactNitroRenderer-Swift-Cxx-Umbrella.hpp +69 -0
  122. package/nitrogen/generated/apple/c++/include/ReactNitroRenderer/private/Size-Swift.hpp +23 -0
  123. package/nitrogen/generated/apple/c++/include/module.modulemap +12 -0
  124. package/nitrogen/generated/apple/swift/AnimationCurve.swift +64 -0
  125. package/nitrogen/generated/apple/swift/Callback___ReactNitroRenderer__HybridWindowSpec_cxx___ReactNitroRenderer__HybridWindowSceneSpec_cxx.swift +71 -0
  126. package/nitrogen/generated/apple/swift/Callback_void.swift +60 -0
  127. package/nitrogen/generated/apple/swift/Callback_void___ReactNitroRenderer__EdgeInsets.swift +66 -0
  128. package/nitrogen/generated/apple/swift/Callback_void___ReactNitroRenderer__HybridLongPressGestureRecognizerSpec_cxx.swift +66 -0
  129. package/nitrogen/generated/apple/swift/Callback_void___ReactNitroRenderer__HybridPanGestureRecognizerSpec_cxx.swift +66 -0
  130. package/nitrogen/generated/apple/swift/Callback_void___ReactNitroRenderer__HybridTapGestureRecognizerSpec_cxx.swift +66 -0
  131. package/nitrogen/generated/apple/swift/Corner.swift +64 -0
  132. package/nitrogen/generated/apple/swift/CornerCurve.swift +54 -0
  133. package/nitrogen/generated/apple/swift/EdgeInsets.swift +49 -0
  134. package/nitrogen/generated/apple/swift/Frame.swift +49 -0
  135. package/nitrogen/generated/apple/swift/GestureRecognizerState.swift +74 -0
  136. package/nitrogen/generated/apple/swift/HybridAnimatorSpec.swift +67 -0
  137. package/nitrogen/generated/apple/swift/HybridAnimatorSpec_cxx.swift +158 -0
  138. package/nitrogen/generated/apple/swift/HybridApplicationSpec.swift +67 -0
  139. package/nitrogen/generated/apple/swift/HybridApplicationSpec_cxx.swift +160 -0
  140. package/nitrogen/generated/apple/swift/HybridGestureRecognizerSpec.swift +67 -0
  141. package/nitrogen/generated/apple/swift/HybridGestureRecognizerSpec_cxx.swift +147 -0
  142. package/nitrogen/generated/apple/swift/HybridLabelSpec.swift +66 -0
  143. package/nitrogen/generated/apple/swift/HybridLabelSpec_cxx.swift +157 -0
  144. package/nitrogen/generated/apple/swift/HybridLongPressGestureRecognizerSpec.swift +70 -0
  145. package/nitrogen/generated/apple/swift/HybridLongPressGestureRecognizerSpec_cxx.swift +193 -0
  146. package/nitrogen/generated/apple/swift/HybridPanGestureRecognizerSpec.swift +69 -0
  147. package/nitrogen/generated/apple/swift/HybridPanGestureRecognizerSpec_cxx.swift +195 -0
  148. package/nitrogen/generated/apple/swift/HybridScreenSpec.swift +67 -0
  149. package/nitrogen/generated/apple/swift/HybridScreenSpec_cxx.swift +146 -0
  150. package/nitrogen/generated/apple/swift/HybridScrollViewContentSpec.swift +66 -0
  151. package/nitrogen/generated/apple/swift/HybridScrollViewContentSpec_cxx.swift +148 -0
  152. package/nitrogen/generated/apple/swift/HybridScrollViewSpec.swift +66 -0
  153. package/nitrogen/generated/apple/swift/HybridScrollViewSpec_cxx.swift +148 -0
  154. package/nitrogen/generated/apple/swift/HybridTapGestureRecognizerSpec.swift +68 -0
  155. package/nitrogen/generated/apple/swift/HybridTapGestureRecognizerSpec_cxx.swift +175 -0
  156. package/nitrogen/generated/apple/swift/HybridViewControllerSpec.swift +68 -0
  157. package/nitrogen/generated/apple/swift/HybridViewControllerSpec_cxx.swift +185 -0
  158. package/nitrogen/generated/apple/swift/HybridViewSpec.swift +89 -0
  159. package/nitrogen/generated/apple/swift/HybridViewSpec_cxx.swift +335 -0
  160. package/nitrogen/generated/apple/swift/HybridWindowSceneSpec.swift +65 -0
  161. package/nitrogen/generated/apple/swift/HybridWindowSceneSpec_cxx.swift +136 -0
  162. package/nitrogen/generated/apple/swift/HybridWindowSpec.swift +65 -0
  163. package/nitrogen/generated/apple/swift/HybridWindowSpec_cxx.swift +156 -0
  164. package/nitrogen/generated/apple/swift/ListenerSubscription.swift +29 -0
  165. package/nitrogen/generated/apple/swift/ModifierKey.swift +64 -0
  166. package/nitrogen/generated/apple/swift/Point.swift +35 -0
  167. package/nitrogen/generated/apple/swift/Point3D.swift +42 -0
  168. package/nitrogen/generated/apple/swift/Promise___ReactNitroRenderer__HybridWindowSpec_cxx.swift +102 -0
  169. package/nitrogen/generated/apple/swift/Promise_void.swift +100 -0
  170. package/nitrogen/generated/apple/swift/ReactNitroRenderer+ForeignTypeMetadata.swift +34 -0
  171. package/nitrogen/generated/apple/swift/Size.swift +35 -0
  172. package/nitrogen/generated/hybrid-classes.json +144 -0
  173. package/nitrogen/generated/shared/c++/ReactNitroRendererCxxModule.cpp +2 -0
  174. package/nitrogen/generated/shared/c++/include/ReactNitroRenderer/ReactNitroRendererCxxModule.hpp +2 -0
  175. package/nitrogen/generated/shared/javascript/Animator.cjs +19 -0
  176. package/nitrogen/generated/shared/javascript/Animator.d.cts +9 -0
  177. package/nitrogen/generated/shared/javascript/Application.cjs +19 -0
  178. package/nitrogen/generated/shared/javascript/Application.d.cts +9 -0
  179. package/nitrogen/generated/shared/javascript/GestureRecognizer.cjs +19 -0
  180. package/nitrogen/generated/shared/javascript/GestureRecognizer.d.cts +9 -0
  181. package/nitrogen/generated/shared/javascript/Label.cjs +19 -0
  182. package/nitrogen/generated/shared/javascript/Label.d.cts +9 -0
  183. package/nitrogen/generated/shared/javascript/LongPressGestureRecognizer.cjs +19 -0
  184. package/nitrogen/generated/shared/javascript/LongPressGestureRecognizer.d.cts +9 -0
  185. package/nitrogen/generated/shared/javascript/PanGestureRecognizer.cjs +19 -0
  186. package/nitrogen/generated/shared/javascript/PanGestureRecognizer.d.cts +9 -0
  187. package/nitrogen/generated/shared/javascript/Screen.cjs +19 -0
  188. package/nitrogen/generated/shared/javascript/Screen.d.cts +9 -0
  189. package/nitrogen/generated/shared/javascript/ScrollView.cjs +19 -0
  190. package/nitrogen/generated/shared/javascript/ScrollView.d.cts +9 -0
  191. package/nitrogen/generated/shared/javascript/ScrollViewContent.cjs +19 -0
  192. package/nitrogen/generated/shared/javascript/ScrollViewContent.d.cts +9 -0
  193. package/nitrogen/generated/shared/javascript/TapGestureRecognizer.cjs +19 -0
  194. package/nitrogen/generated/shared/javascript/TapGestureRecognizer.d.cts +9 -0
  195. package/nitrogen/generated/shared/javascript/View.cjs +19 -0
  196. package/nitrogen/generated/shared/javascript/View.d.cts +9 -0
  197. package/nitrogen/generated/shared/javascript/ViewController.cjs +19 -0
  198. package/nitrogen/generated/shared/javascript/ViewController.d.cts +9 -0
  199. package/nitrogen/generated/shared/javascript/Window.cjs +19 -0
  200. package/nitrogen/generated/shared/javascript/Window.d.cts +9 -0
  201. package/nitrogen/generated/shared/javascript/WindowScene.cjs +19 -0
  202. package/nitrogen/generated/shared/javascript/WindowScene.d.cts +9 -0
  203. package/package.json +42 -4
  204. package/src/NitroRendererHostConfig.ts +396 -0
  205. package/src/PropSetter.ts +29 -0
  206. package/src/StylePropSetters.ts +145 -0
  207. package/src/ViewPropSetters.ts +33 -0
  208. package/src/ViewRegistry.ts +47 -0
  209. package/src/YogaPropSetters.ts +347 -0
  210. package/src/components/ScrollView.tsx +30 -0
  211. package/src/components/ScrollViewContent.tsx +12 -0
  212. package/src/components/Text.tsx +34 -0
  213. package/src/components/View.ts +33 -0
  214. package/src/contexts/RootContext.ts +5 -0
  215. package/src/getViewYogaNode.ts +9 -0
  216. package/src/hooks/useRootContext.ts +11 -0
  217. package/src/hooks/useSafeAreaInsets.ts +36 -0
  218. package/src/hybrids.ts +9 -0
  219. package/src/index.ts +30 -0
  220. package/src/registerApp.ts +22 -0
  221. package/src/renderRoot.ts +44 -0
  222. package/src/specs/Animations/AnimationCurve.ts +6 -0
  223. package/src/specs/Animations/Animator.nitro.ts +16 -0
  224. package/src/specs/Application.nitro.ts +20 -0
  225. package/src/specs/Corner.ts +1 -0
  226. package/src/specs/EdgeInsets.ts +13 -0
  227. package/src/specs/Frame.ts +6 -0
  228. package/src/specs/Gestures/GestureRecognizer.nitro.ts +26 -0
  229. package/src/specs/Gestures/LongPressGestureRecognizer.nitro.ts +26 -0
  230. package/src/specs/Gestures/PanGestureRecognizer.nitro.ts +33 -0
  231. package/src/specs/Gestures/TapGestureRecognizer.nitro.ts +20 -0
  232. package/src/specs/Label.nitro.ts +16 -0
  233. package/src/specs/ListenerSubscription.ts +3 -0
  234. package/src/specs/Screen.nitro.ts +16 -0
  235. package/src/specs/ScrollView.nitro.ts +14 -0
  236. package/src/specs/ScrollViewContent.nitro.ts +14 -0
  237. package/src/specs/Size.ts +4 -0
  238. package/src/specs/View.nitro.ts +112 -0
  239. package/src/specs/ViewController.nitro.ts +29 -0
  240. package/src/specs/Window.nitro.ts +20 -0
  241. package/src/specs/WindowScene.nitro.ts +15 -0
  242. package/src/types/ReactNitroReconcilerHostConfig.ts +44 -0
  243. package/src/types/ReactRoot.ts +5 -0
  244. package/src/types/StrictMap.ts +6 -0
  245. package/src/types/ViewPropsUpdater.ts +30 -0
  246. package/src/types/YogaStyleProps.ts +47 -0
  247. package/src/utils/arePropArraysEqual.ts +18 -0
@@ -0,0 +1,193 @@
1
+ ///
2
+ /// HybridLongPressGestureRecognizerSpec_cxx.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+ internal import NitroModules
8
+ internal import CxxStdlib
9
+ internal import ReactNitroRendererAppleCxx
10
+
11
+ /**
12
+ * A class implementation that bridges HybridLongPressGestureRecognizerSpec over to C++.
13
+ * In C++, we cannot use Swift protocols - so we need to wrap it in a class to make it strongly defined.
14
+ */
15
+ @_expose(Cxx)
16
+ public final class HybridLongPressGestureRecognizerSpec_cxx: HybridGestureRecognizerSpec_cxx {
17
+ /**
18
+ * The Swift <> C++ bridge's namespace (`margelo::nitro::renderer::swift_bridge`)
19
+ * from `ReactNitroRendererAppleCxx/ReactNitroRendererAppleCxx.h`.
20
+ * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift.
21
+ */
22
+ public typealias bridge = margelo.nitro.renderer.swift_bridge
23
+
24
+ /**
25
+ * Holds the Swift implementation of `HybridLongPressGestureRecognizerSpec`.
26
+ */
27
+ private let __implementation: HybridLongPressGestureRecognizer
28
+
29
+ /**
30
+ * Holds a weak pointer to the C++ class that wraps the Swift class.
31
+ */
32
+ private var __cxxPart: bridge.std__weak_ptr_margelo__nitro__renderer__HybridLongPressGestureRecognizerSpec_ = .init()
33
+
34
+ /**
35
+ * Create a new `HybridLongPressGestureRecognizerSpec_cxx` that wraps the given `HybridLongPressGestureRecognizerSpec`.
36
+ */
37
+ public init(_ implementation: any HybridLongPressGestureRecognizerSpec) {
38
+ guard let implementation = implementation as? HybridLongPressGestureRecognizer else {
39
+ preconditionFailure("LongPressGestureRecognizer selects HybridLongPressGestureRecognizer as its Swift implementation. Every instance must inherit HybridLongPressGestureRecognizer.")
40
+ }
41
+ self.__implementation = implementation
42
+ super.init(implementation)
43
+ }
44
+
45
+ /**
46
+ * Get the actual `HybridLongPressGestureRecognizerSpec` instance this class wraps.
47
+ */
48
+ @inline(__always)
49
+ public func getHybridLongPressGestureRecognizerSpec() -> any HybridLongPressGestureRecognizerSpec {
50
+ return __implementation
51
+ }
52
+
53
+ /**
54
+ * Casts this instance to a retained unsafe raw pointer.
55
+ * This acquires one additional strong reference on the object!
56
+ */
57
+ public override func toUnsafe() -> UnsafeMutableRawPointer {
58
+ return Unmanaged.passRetained(self).toOpaque()
59
+ }
60
+
61
+ /**
62
+ * Casts an unsafe pointer to a `HybridLongPressGestureRecognizerSpec_cxx`.
63
+ * The pointer has to be a retained opaque `Unmanaged<HybridLongPressGestureRecognizerSpec_cxx>`.
64
+ * This removes one strong reference from the object!
65
+ */
66
+ public override class func fromUnsafe(pointer: UnsafeMutableRawPointer) -> HybridLongPressGestureRecognizerSpec_cxx {
67
+ return Unmanaged<HybridLongPressGestureRecognizerSpec_cxx>.fromOpaque(pointer).takeRetainedValue()
68
+ }
69
+
70
+ /**
71
+ * Gets (or creates) the C++ part of this Hybrid Object.
72
+ * This handle keeps the original native object alive.
73
+ */
74
+ public func getCxxPart() -> bridge.std__shared_ptr_margelo__nitro__renderer__HybridLongPressGestureRecognizerSpec_ {
75
+ let cached = __cxxPart.lock()
76
+ if cached.use_count() > 0 {
77
+ return cached
78
+ }
79
+ let value = bridge.create_std__shared_ptr_margelo__nitro__renderer__HybridLongPressGestureRecognizerSpec_(self.toUnsafe())
80
+ __cxxPart = bridge.weakify_std__shared_ptr_margelo__nitro__renderer__HybridLongPressGestureRecognizerSpec_(value)
81
+ return value
82
+ }
83
+
84
+ // Keep the base accessor in Swift to avoid exporting the same imported pointer
85
+ // metadata from two modules when the base belongs to an external module.
86
+ @_expose(!Cxx)
87
+ public override func getCxxPart() -> bridge.std__shared_ptr_margelo__nitro__renderer__HybridGestureRecognizerSpec_ {
88
+ let own: bridge.std__shared_ptr_margelo__nitro__renderer__HybridLongPressGestureRecognizerSpec_ = getCxxPart()
89
+ return bridge.upcast_LongPressGestureRecognizer_to_GestureRecognizer(own)
90
+ }
91
+
92
+ // A static borrowing accessor lets C++ pass a const reference without copying it.
93
+ // TODO: Remove this adapter and call the instance method directly once
94
+ // https://github.com/swiftlang/swift/pull/92862 is merged and supported by our Swift toolchain.
95
+ @_spi(NitroCxx)
96
+ public static func getCxxPart(_ value: borrowing HybridLongPressGestureRecognizerSpec_cxx) -> bridge.std__shared_ptr_margelo__nitro__renderer__HybridLongPressGestureRecognizerSpec_ {
97
+ return value.getCxxPart()
98
+ }
99
+
100
+ /**
101
+ * Get the memory size of the Swift class (plus size of any other allocations)
102
+ * so the JS VM can properly track it and garbage-collect the JS object if needed.
103
+ */
104
+ @inline(__always)
105
+ public override var memorySize: Int {
106
+ return MemoryHelper.getSizeOf(__implementation) + __implementation.memorySize
107
+ }
108
+
109
+ /**
110
+ * Compares this object with the given [other] object for reference equality.
111
+ */
112
+ @inline(__always)
113
+ public func equals(other: HybridLongPressGestureRecognizerSpec_cxx) -> Bool {
114
+ return __implementation === other.__implementation
115
+ }
116
+
117
+ /**
118
+ * Call dispose() on the Swift class.
119
+ * This _may_ be called manually from JS.
120
+ */
121
+ @inline(__always)
122
+ public override func dispose() {
123
+ __implementation.dispose()
124
+ }
125
+
126
+ /**
127
+ * Call toString() on the Swift class.
128
+ */
129
+ @inline(__always)
130
+ public override func toString() -> String {
131
+ return __implementation.toString()
132
+ }
133
+
134
+ // Properties
135
+
136
+ public final func getMinimumPressDuration() -> Double {
137
+ let value = __implementation.minimumPressDuration
138
+ return value
139
+ }
140
+
141
+ public final func setMinimumPressDuration(minimumPressDuration: Double) -> Void {
142
+ __implementation.minimumPressDuration = minimumPressDuration
143
+ }
144
+
145
+ public final func getAllowableMovement() -> Double {
146
+ let value = __implementation.allowableMovement
147
+ return value
148
+ }
149
+
150
+ public final func setAllowableMovement(allowableMovement: Double) -> Void {
151
+ __implementation.allowableMovement = allowableMovement
152
+ }
153
+
154
+ public final func getNumberOfTapsRequired() -> Double {
155
+ let value = __implementation.numberOfTapsRequired
156
+ return value
157
+ }
158
+
159
+ public final func setNumberOfTapsRequired(numberOfTapsRequired: Double) -> Void {
160
+ __implementation.numberOfTapsRequired = numberOfTapsRequired
161
+ }
162
+
163
+ public final func getNumberOfTouchesRequired() -> Double {
164
+ let value = __implementation.numberOfTouchesRequired
165
+ return value
166
+ }
167
+
168
+ public final func setNumberOfTouchesRequired(numberOfTouchesRequired: Double) -> Void {
169
+ __implementation.numberOfTouchesRequired = numberOfTouchesRequired
170
+ }
171
+
172
+ public final func getOnLongPress() -> (margelo.nitro.renderer.swift_bridge.Callback_void___ReactNitroRenderer__HybridLongPressGestureRecognizerSpec_cxx)? {
173
+ let value = __implementation.onLongPress
174
+ return value.map { $0.toCpp() }
175
+ }
176
+
177
+ public final func setOnLongPress(onLongPress: (margelo.nitro.renderer.swift_bridge.Callback_void___ReactNitroRenderer__HybridLongPressGestureRecognizerSpec_cxx)?) -> Void {
178
+ __implementation.onLongPress = onLongPress.map { $0 }
179
+ }
180
+
181
+ // Methods
182
+
183
+ // Constructor
184
+
185
+ public class func constructor() -> bridge.Result_void_ {
186
+ do {
187
+ let value = try HybridLongPressGestureRecognizer()
188
+ return bridge.Result_void_.withValue(value.getCxxWrapper().toUnsafe())
189
+ } catch {
190
+ return bridge.Result_void_.withError(error.toCpp())
191
+ }
192
+ }
193
+ }
@@ -0,0 +1,69 @@
1
+ ///
2
+ /// HybridPanGestureRecognizerSpec.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ public import NitroModules
9
+
10
+ /// See ``HybridPanGestureRecognizerSpec``
11
+ public protocol HybridPanGestureRecognizerSpec_protocol: HybridPanGestureRecognizerSpec_base, HybridObject, HybridGestureRecognizerSpec_protocol {
12
+ // Constructor
13
+ init() throws
14
+
15
+ // Properties
16
+ var maximumNumberOfTouches: Double { get set }
17
+ var minimumNumberOfTouches: Double { get set }
18
+ var onPan: (any Callback<(/* recognizer */ (any HybridPanGestureRecognizerSpec)), Void>)? { get set }
19
+
20
+ // Methods
21
+ func translation(inParent: (any HybridViewSpec)) throws -> Point
22
+ func velocity(inParent: (any HybridViewSpec)) throws -> Point
23
+
24
+ // Static Properties
25
+
26
+
27
+ // Static Methods
28
+
29
+ }
30
+
31
+ public extension HybridPanGestureRecognizerSpec_protocol {
32
+ /// Default implementation of ``HybridObject.toString``
33
+ func toString() -> String {
34
+ return "[HybridObject PanGestureRecognizer]"
35
+ }
36
+ }
37
+
38
+ /// See ``HybridPanGestureRecognizerSpec``
39
+ open class HybridPanGestureRecognizerSpec_base: HybridGestureRecognizerSpec_base {
40
+ private weak var cxxWrapper: HybridPanGestureRecognizerSpec_cxx? = nil
41
+ public override init() throws {
42
+ try super.init()
43
+ }
44
+ public final override func getCxxWrapper() -> HybridPanGestureRecognizerSpec_cxx {
45
+ #if DEBUG
46
+ guard self is any HybridPanGestureRecognizerSpec else {
47
+ fatalError("`self` is not a `HybridPanGestureRecognizerSpec`! Did you accidentally inherit from `HybridPanGestureRecognizerSpec_base` instead of `HybridPanGestureRecognizerSpec`?")
48
+ }
49
+ #endif
50
+ if let cxxWrapper = self.cxxWrapper {
51
+ return cxxWrapper
52
+ } else {
53
+ let cxxWrapper = HybridPanGestureRecognizerSpec_cxx(self as! any HybridPanGestureRecognizerSpec)
54
+ self.cxxWrapper = cxxWrapper
55
+ return cxxWrapper
56
+ }
57
+ }
58
+ }
59
+
60
+ /**
61
+ * A Swift base-protocol representing the PanGestureRecognizer HybridObject.
62
+ * Implement this protocol to create Swift-based instances of PanGestureRecognizer.
63
+ * ```swift
64
+ * class HybridPanGestureRecognizer : HybridPanGestureRecognizerSpec {
65
+ * // ...
66
+ * }
67
+ * ```
68
+ */
69
+ public typealias HybridPanGestureRecognizerSpec = HybridPanGestureRecognizerSpec_protocol & HybridPanGestureRecognizerSpec_base
@@ -0,0 +1,195 @@
1
+ ///
2
+ /// HybridPanGestureRecognizerSpec_cxx.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+ internal import NitroModules
8
+ internal import CxxStdlib
9
+ internal import ReactNitroRendererAppleCxx
10
+
11
+ /**
12
+ * A class implementation that bridges HybridPanGestureRecognizerSpec over to C++.
13
+ * In C++, we cannot use Swift protocols - so we need to wrap it in a class to make it strongly defined.
14
+ */
15
+ @_expose(Cxx)
16
+ public final class HybridPanGestureRecognizerSpec_cxx: HybridGestureRecognizerSpec_cxx {
17
+ /**
18
+ * The Swift <> C++ bridge's namespace (`margelo::nitro::renderer::swift_bridge`)
19
+ * from `ReactNitroRendererAppleCxx/ReactNitroRendererAppleCxx.h`.
20
+ * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift.
21
+ */
22
+ public typealias bridge = margelo.nitro.renderer.swift_bridge
23
+
24
+ /**
25
+ * Holds the Swift implementation of `HybridPanGestureRecognizerSpec`.
26
+ */
27
+ private let __implementation: HybridPanGestureRecognizer
28
+
29
+ /**
30
+ * Holds a weak pointer to the C++ class that wraps the Swift class.
31
+ */
32
+ private var __cxxPart: bridge.std__weak_ptr_margelo__nitro__renderer__HybridPanGestureRecognizerSpec_ = .init()
33
+
34
+ /**
35
+ * Create a new `HybridPanGestureRecognizerSpec_cxx` that wraps the given `HybridPanGestureRecognizerSpec`.
36
+ */
37
+ public init(_ implementation: any HybridPanGestureRecognizerSpec) {
38
+ guard let implementation = implementation as? HybridPanGestureRecognizer else {
39
+ preconditionFailure("PanGestureRecognizer selects HybridPanGestureRecognizer as its Swift implementation. Every instance must inherit HybridPanGestureRecognizer.")
40
+ }
41
+ self.__implementation = implementation
42
+ super.init(implementation)
43
+ }
44
+
45
+ /**
46
+ * Get the actual `HybridPanGestureRecognizerSpec` instance this class wraps.
47
+ */
48
+ @inline(__always)
49
+ public func getHybridPanGestureRecognizerSpec() -> any HybridPanGestureRecognizerSpec {
50
+ return __implementation
51
+ }
52
+
53
+ /**
54
+ * Casts this instance to a retained unsafe raw pointer.
55
+ * This acquires one additional strong reference on the object!
56
+ */
57
+ public override func toUnsafe() -> UnsafeMutableRawPointer {
58
+ return Unmanaged.passRetained(self).toOpaque()
59
+ }
60
+
61
+ /**
62
+ * Casts an unsafe pointer to a `HybridPanGestureRecognizerSpec_cxx`.
63
+ * The pointer has to be a retained opaque `Unmanaged<HybridPanGestureRecognizerSpec_cxx>`.
64
+ * This removes one strong reference from the object!
65
+ */
66
+ public override class func fromUnsafe(pointer: UnsafeMutableRawPointer) -> HybridPanGestureRecognizerSpec_cxx {
67
+ return Unmanaged<HybridPanGestureRecognizerSpec_cxx>.fromOpaque(pointer).takeRetainedValue()
68
+ }
69
+
70
+ /**
71
+ * Gets (or creates) the C++ part of this Hybrid Object.
72
+ * This handle keeps the original native object alive.
73
+ */
74
+ public func getCxxPart() -> bridge.std__shared_ptr_margelo__nitro__renderer__HybridPanGestureRecognizerSpec_ {
75
+ let cached = __cxxPart.lock()
76
+ if cached.use_count() > 0 {
77
+ return cached
78
+ }
79
+ let value = bridge.create_std__shared_ptr_margelo__nitro__renderer__HybridPanGestureRecognizerSpec_(self.toUnsafe())
80
+ __cxxPart = bridge.weakify_std__shared_ptr_margelo__nitro__renderer__HybridPanGestureRecognizerSpec_(value)
81
+ return value
82
+ }
83
+
84
+ // Keep the base accessor in Swift to avoid exporting the same imported pointer
85
+ // metadata from two modules when the base belongs to an external module.
86
+ @_expose(!Cxx)
87
+ public override func getCxxPart() -> bridge.std__shared_ptr_margelo__nitro__renderer__HybridGestureRecognizerSpec_ {
88
+ let own: bridge.std__shared_ptr_margelo__nitro__renderer__HybridPanGestureRecognizerSpec_ = getCxxPart()
89
+ return bridge.upcast_PanGestureRecognizer_to_GestureRecognizer(own)
90
+ }
91
+
92
+ // A static borrowing accessor lets C++ pass a const reference without copying it.
93
+ // TODO: Remove this adapter and call the instance method directly once
94
+ // https://github.com/swiftlang/swift/pull/92862 is merged and supported by our Swift toolchain.
95
+ @_spi(NitroCxx)
96
+ public static func getCxxPart(_ value: borrowing HybridPanGestureRecognizerSpec_cxx) -> bridge.std__shared_ptr_margelo__nitro__renderer__HybridPanGestureRecognizerSpec_ {
97
+ return value.getCxxPart()
98
+ }
99
+
100
+ /**
101
+ * Get the memory size of the Swift class (plus size of any other allocations)
102
+ * so the JS VM can properly track it and garbage-collect the JS object if needed.
103
+ */
104
+ @inline(__always)
105
+ public override var memorySize: Int {
106
+ return MemoryHelper.getSizeOf(__implementation) + __implementation.memorySize
107
+ }
108
+
109
+ /**
110
+ * Compares this object with the given [other] object for reference equality.
111
+ */
112
+ @inline(__always)
113
+ public func equals(other: HybridPanGestureRecognizerSpec_cxx) -> Bool {
114
+ return __implementation === other.__implementation
115
+ }
116
+
117
+ /**
118
+ * Call dispose() on the Swift class.
119
+ * This _may_ be called manually from JS.
120
+ */
121
+ @inline(__always)
122
+ public override func dispose() {
123
+ __implementation.dispose()
124
+ }
125
+
126
+ /**
127
+ * Call toString() on the Swift class.
128
+ */
129
+ @inline(__always)
130
+ public override func toString() -> String {
131
+ return __implementation.toString()
132
+ }
133
+
134
+ // Properties
135
+
136
+ public final func getMaximumNumberOfTouches() -> Double {
137
+ let value = __implementation.maximumNumberOfTouches
138
+ return value
139
+ }
140
+
141
+ public final func setMaximumNumberOfTouches(maximumNumberOfTouches: Double) -> Void {
142
+ __implementation.maximumNumberOfTouches = maximumNumberOfTouches
143
+ }
144
+
145
+ public final func getMinimumNumberOfTouches() -> Double {
146
+ let value = __implementation.minimumNumberOfTouches
147
+ return value
148
+ }
149
+
150
+ public final func setMinimumNumberOfTouches(minimumNumberOfTouches: Double) -> Void {
151
+ __implementation.minimumNumberOfTouches = minimumNumberOfTouches
152
+ }
153
+
154
+ public final func getOnPan() -> (margelo.nitro.renderer.swift_bridge.Callback_void___ReactNitroRenderer__HybridPanGestureRecognizerSpec_cxx)? {
155
+ let value = __implementation.onPan
156
+ return value.map { $0.toCpp() }
157
+ }
158
+
159
+ public final func setOnPan(onPan: (margelo.nitro.renderer.swift_bridge.Callback_void___ReactNitroRenderer__HybridPanGestureRecognizerSpec_cxx)?) -> Void {
160
+ __implementation.onPan = onPan.map { $0 }
161
+ }
162
+
163
+ // Methods
164
+
165
+ public final func translation(inParent: HybridViewSpec_cxx, __outResult: UnsafeMutableRawPointer) -> bridge.Result_void {
166
+ do {
167
+ let value = try __implementation.translation(inParent: inParent.getHybridViewSpec())
168
+ __outResult.assumingMemoryBound(to: Point.self).initialize(to: value)
169
+ return bridge.Result_void.withValue()
170
+ } catch {
171
+ return bridge.Result_void.withError(error.toCpp())
172
+ }
173
+ }
174
+
175
+ public final func velocity(inParent: HybridViewSpec_cxx, __outResult: UnsafeMutableRawPointer) -> bridge.Result_void {
176
+ do {
177
+ let value = try __implementation.velocity(inParent: inParent.getHybridViewSpec())
178
+ __outResult.assumingMemoryBound(to: Point.self).initialize(to: value)
179
+ return bridge.Result_void.withValue()
180
+ } catch {
181
+ return bridge.Result_void.withError(error.toCpp())
182
+ }
183
+ }
184
+
185
+ // Constructor
186
+
187
+ public class func constructor() -> bridge.Result_void_ {
188
+ do {
189
+ let value = try HybridPanGestureRecognizer()
190
+ return bridge.Result_void_.withValue(value.getCxxWrapper().toUnsafe())
191
+ } catch {
192
+ return bridge.Result_void_.withError(error.toCpp())
193
+ }
194
+ }
195
+ }
@@ -0,0 +1,67 @@
1
+ ///
2
+ /// HybridScreenSpec.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ public import NitroModules
9
+
10
+ /// See ``HybridScreenSpec``
11
+ public protocol HybridScreenSpec_protocol: HybridScreenSpec_base, HybridObject {
12
+ // Constructor
13
+
14
+
15
+ // Properties
16
+ var size: Size { get }
17
+ var displayScale: Double { get }
18
+ var brightness: Double { get }
19
+
20
+ // Methods
21
+
22
+
23
+ // Static Properties
24
+
25
+
26
+ // Static Methods
27
+
28
+ }
29
+
30
+ public extension HybridScreenSpec_protocol {
31
+ /// Default implementation of ``HybridObject.toString``
32
+ func toString() -> String {
33
+ return "[HybridObject Screen]"
34
+ }
35
+ }
36
+
37
+ /// See ``HybridScreenSpec``
38
+ open class HybridScreenSpec_base {
39
+ private weak var cxxWrapper: HybridScreenSpec_cxx? = nil
40
+ public init() throws {
41
+ }
42
+ public final func getCxxWrapper() -> HybridScreenSpec_cxx {
43
+ #if DEBUG
44
+ guard self is any HybridScreenSpec else {
45
+ fatalError("`self` is not a `HybridScreenSpec`! Did you accidentally inherit from `HybridScreenSpec_base` instead of `HybridScreenSpec`?")
46
+ }
47
+ #endif
48
+ if let cxxWrapper = self.cxxWrapper {
49
+ return cxxWrapper
50
+ } else {
51
+ let cxxWrapper = HybridScreenSpec_cxx(self as! any HybridScreenSpec)
52
+ self.cxxWrapper = cxxWrapper
53
+ return cxxWrapper
54
+ }
55
+ }
56
+ }
57
+
58
+ /**
59
+ * A Swift base-protocol representing the Screen HybridObject.
60
+ * Implement this protocol to create Swift-based instances of Screen.
61
+ * ```swift
62
+ * class HybridScreen : HybridScreenSpec {
63
+ * // ...
64
+ * }
65
+ * ```
66
+ */
67
+ public typealias HybridScreenSpec = HybridScreenSpec_protocol & HybridScreenSpec_base
@@ -0,0 +1,146 @@
1
+ ///
2
+ /// HybridScreenSpec_cxx.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/margelo/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+ internal import NitroModules
8
+ internal import CxxStdlib
9
+ internal import ReactNitroRendererAppleCxx
10
+
11
+ /**
12
+ * A class implementation that bridges HybridScreenSpec over to C++.
13
+ * In C++, we cannot use Swift protocols - so we need to wrap it in a class to make it strongly defined.
14
+ */
15
+ @_expose(Cxx)
16
+ public final class HybridScreenSpec_cxx {
17
+ /**
18
+ * The Swift <> C++ bridge's namespace (`margelo::nitro::renderer::swift_bridge`)
19
+ * from `ReactNitroRendererAppleCxx/ReactNitroRendererAppleCxx.h`.
20
+ * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift.
21
+ */
22
+ public typealias bridge = margelo.nitro.renderer.swift_bridge
23
+
24
+ /**
25
+ * Holds the Swift implementation of `HybridScreenSpec`.
26
+ */
27
+ private let __implementation: HybridScreen
28
+
29
+ /**
30
+ * Holds a weak pointer to the C++ class that wraps the Swift class.
31
+ */
32
+ private var __cxxPart: bridge.std__weak_ptr_margelo__nitro__renderer__HybridScreenSpec_ = .init()
33
+
34
+ /**
35
+ * Create a new `HybridScreenSpec_cxx` that wraps the given `HybridScreenSpec`.
36
+ */
37
+ public init(_ implementation: any HybridScreenSpec) {
38
+ guard let implementation = implementation as? HybridScreen else {
39
+ preconditionFailure("Screen selects HybridScreen as its Swift implementation. Every instance must inherit HybridScreen.")
40
+ }
41
+ self.__implementation = implementation
42
+
43
+ }
44
+
45
+ /**
46
+ * Get the actual `HybridScreenSpec` instance this class wraps.
47
+ */
48
+ @inline(__always)
49
+ public func getHybridScreenSpec() -> any HybridScreenSpec {
50
+ return __implementation
51
+ }
52
+
53
+ /**
54
+ * Casts this instance to a retained unsafe raw pointer.
55
+ * This acquires one additional strong reference on the object!
56
+ */
57
+ public func toUnsafe() -> UnsafeMutableRawPointer {
58
+ return Unmanaged.passRetained(self).toOpaque()
59
+ }
60
+
61
+ /**
62
+ * Casts an unsafe pointer to a `HybridScreenSpec_cxx`.
63
+ * The pointer has to be a retained opaque `Unmanaged<HybridScreenSpec_cxx>`.
64
+ * This removes one strong reference from the object!
65
+ */
66
+ public class func fromUnsafe(pointer: UnsafeMutableRawPointer) -> HybridScreenSpec_cxx {
67
+ return Unmanaged<HybridScreenSpec_cxx>.fromOpaque(pointer).takeRetainedValue()
68
+ }
69
+
70
+ /**
71
+ * Gets (or creates) the C++ part of this Hybrid Object.
72
+ * This handle keeps the original native object alive.
73
+ */
74
+ public func getCxxPart() -> bridge.std__shared_ptr_margelo__nitro__renderer__HybridScreenSpec_ {
75
+ let cached = __cxxPart.lock()
76
+ if cached.use_count() > 0 {
77
+ return cached
78
+ }
79
+ let value = bridge.create_std__shared_ptr_margelo__nitro__renderer__HybridScreenSpec_(self.toUnsafe())
80
+ __cxxPart = bridge.weakify_std__shared_ptr_margelo__nitro__renderer__HybridScreenSpec_(value)
81
+ return value
82
+ }
83
+
84
+
85
+
86
+ // A static borrowing accessor lets C++ pass a const reference without copying it.
87
+ // TODO: Remove this adapter and call the instance method directly once
88
+ // https://github.com/swiftlang/swift/pull/92862 is merged and supported by our Swift toolchain.
89
+ @_spi(NitroCxx)
90
+ public static func getCxxPart(_ value: borrowing HybridScreenSpec_cxx) -> bridge.std__shared_ptr_margelo__nitro__renderer__HybridScreenSpec_ {
91
+ return value.getCxxPart()
92
+ }
93
+
94
+ /**
95
+ * Get the memory size of the Swift class (plus size of any other allocations)
96
+ * so the JS VM can properly track it and garbage-collect the JS object if needed.
97
+ */
98
+ @inline(__always)
99
+ public var memorySize: Int {
100
+ return MemoryHelper.getSizeOf(__implementation) + __implementation.memorySize
101
+ }
102
+
103
+ /**
104
+ * Compares this object with the given [other] object for reference equality.
105
+ */
106
+ @inline(__always)
107
+ public func equals(other: HybridScreenSpec_cxx) -> Bool {
108
+ return __implementation === other.__implementation
109
+ }
110
+
111
+ /**
112
+ * Call dispose() on the Swift class.
113
+ * This _may_ be called manually from JS.
114
+ */
115
+ @inline(__always)
116
+ public func dispose() {
117
+ __implementation.dispose()
118
+ }
119
+
120
+ /**
121
+ * Call toString() on the Swift class.
122
+ */
123
+ @inline(__always)
124
+ public func toString() -> String {
125
+ return __implementation.toString()
126
+ }
127
+
128
+ // Properties
129
+
130
+ public final func getSize() -> Size {
131
+ let value = __implementation.size
132
+ return value
133
+ }
134
+
135
+ public final func getDisplayScale() -> Double {
136
+ let value = __implementation.displayScale
137
+ return value
138
+ }
139
+
140
+ public final func getBrightness() -> Double {
141
+ let value = __implementation.brightness
142
+ return value
143
+ }
144
+
145
+ // Methods
146
+ }