@onekeyfe/react-native-perp-depth-bar 3.0.39

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 (168) hide show
  1. package/LICENSE +21 -0
  2. package/PerpDepthBar.podspec +29 -0
  3. package/README.md +31 -0
  4. package/android/CMakeLists.txt +24 -0
  5. package/android/build.gradle +128 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  8. package/android/src/main/java/com/margelo/nitro/perpdepthbar/HybridPerpDepthBars.kt +164 -0
  9. package/android/src/main/java/com/margelo/nitro/perpdepthbar/HybridPerpSideRatio.kt +139 -0
  10. package/android/src/main/java/com/margelo/nitro/perpdepthbar/PerpColorParser.kt +56 -0
  11. package/android/src/main/java/com/margelo/nitro/perpdepthbar/PerpDepthBarPackage.kt +33 -0
  12. package/ios/HybridPerpDepthBars.swift +148 -0
  13. package/ios/HybridPerpSideRatio.swift +118 -0
  14. package/ios/PerpColorParser.swift +92 -0
  15. package/lib/module/PerpDepthBars.nitro.js +4 -0
  16. package/lib/module/PerpDepthBars.nitro.js.map +1 -0
  17. package/lib/module/PerpSideRatio.nitro.js +4 -0
  18. package/lib/module/PerpSideRatio.nitro.js.map +1 -0
  19. package/lib/module/index.js +8 -0
  20. package/lib/module/index.js.map +1 -0
  21. package/lib/module/package.json +1 -0
  22. package/lib/nitrogen/generated/android/c++/JHybridPerpDepthBarsSpec.cpp +130 -0
  23. package/lib/nitrogen/generated/android/c++/JHybridPerpDepthBarsSpec.hpp +80 -0
  24. package/lib/nitrogen/generated/android/c++/JHybridPerpSideRatioSpec.cpp +119 -0
  25. package/lib/nitrogen/generated/android/c++/JHybridPerpSideRatioSpec.hpp +80 -0
  26. package/lib/nitrogen/generated/android/c++/views/JHybridPerpDepthBarsStateUpdater.cpp +84 -0
  27. package/lib/nitrogen/generated/android/c++/views/JHybridPerpDepthBarsStateUpdater.hpp +49 -0
  28. package/lib/nitrogen/generated/android/c++/views/JHybridPerpSideRatioStateUpdater.cpp +84 -0
  29. package/lib/nitrogen/generated/android/c++/views/JHybridPerpSideRatioStateUpdater.hpp +49 -0
  30. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/HybridPerpDepthBarsSpec.kt +101 -0
  31. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/HybridPerpSideRatioSpec.kt +101 -0
  32. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/perpdepthbarOnLoad.kt +35 -0
  33. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpDepthBarsManager.kt +50 -0
  34. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpDepthBarsStateUpdater.kt +23 -0
  35. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpSideRatioManager.kt +50 -0
  36. package/lib/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpSideRatioStateUpdater.kt +23 -0
  37. package/lib/nitrogen/generated/android/perpdepthbar+autolinking.cmake +87 -0
  38. package/lib/nitrogen/generated/android/perpdepthbar+autolinking.gradle +27 -0
  39. package/lib/nitrogen/generated/android/perpdepthbarOnLoad.cpp +58 -0
  40. package/lib/nitrogen/generated/android/perpdepthbarOnLoad.hpp +25 -0
  41. package/lib/nitrogen/generated/ios/PerpDepthBar+autolinking.rb +60 -0
  42. package/lib/nitrogen/generated/ios/PerpDepthBar-Swift-Cxx-Bridge.cpp +50 -0
  43. package/lib/nitrogen/generated/ios/PerpDepthBar-Swift-Cxx-Bridge.hpp +69 -0
  44. package/lib/nitrogen/generated/ios/PerpDepthBar-Swift-Cxx-Umbrella.hpp +48 -0
  45. package/lib/nitrogen/generated/ios/PerpDepthBarAutolinking.mm +41 -0
  46. package/lib/nitrogen/generated/ios/PerpDepthBarAutolinking.swift +40 -0
  47. package/lib/nitrogen/generated/ios/c++/HybridPerpDepthBarsSpecSwift.cpp +11 -0
  48. package/lib/nitrogen/generated/ios/c++/HybridPerpDepthBarsSpecSwift.hpp +120 -0
  49. package/lib/nitrogen/generated/ios/c++/HybridPerpSideRatioSpecSwift.cpp +11 -0
  50. package/lib/nitrogen/generated/ios/c++/HybridPerpSideRatioSpecSwift.hpp +118 -0
  51. package/lib/nitrogen/generated/ios/c++/views/HybridPerpDepthBarsComponent.mm +131 -0
  52. package/lib/nitrogen/generated/ios/c++/views/HybridPerpSideRatioComponent.mm +131 -0
  53. package/lib/nitrogen/generated/ios/swift/HybridPerpDepthBarsSpec.swift +63 -0
  54. package/lib/nitrogen/generated/ios/swift/HybridPerpDepthBarsSpec_cxx.swift +223 -0
  55. package/lib/nitrogen/generated/ios/swift/HybridPerpSideRatioSpec.swift +63 -0
  56. package/lib/nitrogen/generated/ios/swift/HybridPerpSideRatioSpec_cxx.swift +217 -0
  57. package/lib/nitrogen/generated/shared/c++/HybridPerpDepthBarsSpec.cpp +36 -0
  58. package/lib/nitrogen/generated/shared/c++/HybridPerpDepthBarsSpec.hpp +78 -0
  59. package/lib/nitrogen/generated/shared/c++/HybridPerpSideRatioSpec.cpp +36 -0
  60. package/lib/nitrogen/generated/shared/c++/HybridPerpSideRatioSpec.hpp +77 -0
  61. package/lib/nitrogen/generated/shared/c++/views/HybridPerpDepthBarsComponent.cpp +171 -0
  62. package/lib/nitrogen/generated/shared/c++/views/HybridPerpDepthBarsComponent.hpp +116 -0
  63. package/lib/nitrogen/generated/shared/c++/views/HybridPerpSideRatioComponent.cpp +171 -0
  64. package/lib/nitrogen/generated/shared/c++/views/HybridPerpSideRatioComponent.hpp +115 -0
  65. package/lib/nitrogen/generated/shared/json/PerpDepthBarsConfig.json +17 -0
  66. package/lib/nitrogen/generated/shared/json/PerpSideRatioConfig.json +17 -0
  67. package/lib/nitrogen/nitrogen/generated/android/c++/JHybridPerpDepthBarsSpec.cpp +130 -0
  68. package/lib/nitrogen/nitrogen/generated/android/c++/JHybridPerpDepthBarsSpec.hpp +80 -0
  69. package/lib/nitrogen/nitrogen/generated/android/c++/JHybridPerpSideRatioSpec.cpp +119 -0
  70. package/lib/nitrogen/nitrogen/generated/android/c++/JHybridPerpSideRatioSpec.hpp +80 -0
  71. package/lib/nitrogen/nitrogen/generated/android/c++/views/JHybridPerpDepthBarsStateUpdater.cpp +84 -0
  72. package/lib/nitrogen/nitrogen/generated/android/c++/views/JHybridPerpDepthBarsStateUpdater.hpp +49 -0
  73. package/lib/nitrogen/nitrogen/generated/android/c++/views/JHybridPerpSideRatioStateUpdater.cpp +84 -0
  74. package/lib/nitrogen/nitrogen/generated/android/c++/views/JHybridPerpSideRatioStateUpdater.hpp +49 -0
  75. package/lib/nitrogen/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/HybridPerpDepthBarsSpec.kt +101 -0
  76. package/lib/nitrogen/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/HybridPerpSideRatioSpec.kt +101 -0
  77. package/lib/nitrogen/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/perpdepthbarOnLoad.kt +35 -0
  78. package/lib/nitrogen/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpDepthBarsManager.kt +50 -0
  79. package/lib/nitrogen/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpDepthBarsStateUpdater.kt +23 -0
  80. package/lib/nitrogen/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpSideRatioManager.kt +50 -0
  81. package/lib/nitrogen/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpSideRatioStateUpdater.kt +23 -0
  82. package/lib/nitrogen/nitrogen/generated/android/perpdepthbar+autolinking.cmake +87 -0
  83. package/lib/nitrogen/nitrogen/generated/android/perpdepthbar+autolinking.gradle +27 -0
  84. package/lib/nitrogen/nitrogen/generated/android/perpdepthbarOnLoad.cpp +58 -0
  85. package/lib/nitrogen/nitrogen/generated/android/perpdepthbarOnLoad.hpp +25 -0
  86. package/lib/nitrogen/nitrogen/generated/ios/PerpDepthBar+autolinking.rb +60 -0
  87. package/lib/nitrogen/nitrogen/generated/ios/PerpDepthBar-Swift-Cxx-Bridge.cpp +50 -0
  88. package/lib/nitrogen/nitrogen/generated/ios/PerpDepthBar-Swift-Cxx-Bridge.hpp +69 -0
  89. package/lib/nitrogen/nitrogen/generated/ios/PerpDepthBar-Swift-Cxx-Umbrella.hpp +48 -0
  90. package/lib/nitrogen/nitrogen/generated/ios/PerpDepthBarAutolinking.mm +41 -0
  91. package/lib/nitrogen/nitrogen/generated/ios/PerpDepthBarAutolinking.swift +40 -0
  92. package/lib/nitrogen/nitrogen/generated/ios/c++/HybridPerpDepthBarsSpecSwift.cpp +11 -0
  93. package/lib/nitrogen/nitrogen/generated/ios/c++/HybridPerpDepthBarsSpecSwift.hpp +120 -0
  94. package/lib/nitrogen/nitrogen/generated/ios/c++/HybridPerpSideRatioSpecSwift.cpp +11 -0
  95. package/lib/nitrogen/nitrogen/generated/ios/c++/HybridPerpSideRatioSpecSwift.hpp +118 -0
  96. package/lib/nitrogen/nitrogen/generated/ios/c++/views/HybridPerpDepthBarsComponent.mm +131 -0
  97. package/lib/nitrogen/nitrogen/generated/ios/c++/views/HybridPerpSideRatioComponent.mm +131 -0
  98. package/lib/nitrogen/nitrogen/generated/ios/swift/HybridPerpDepthBarsSpec.swift +63 -0
  99. package/lib/nitrogen/nitrogen/generated/ios/swift/HybridPerpDepthBarsSpec_cxx.swift +223 -0
  100. package/lib/nitrogen/nitrogen/generated/ios/swift/HybridPerpSideRatioSpec.swift +63 -0
  101. package/lib/nitrogen/nitrogen/generated/ios/swift/HybridPerpSideRatioSpec_cxx.swift +217 -0
  102. package/lib/nitrogen/nitrogen/generated/shared/c++/HybridPerpDepthBarsSpec.cpp +36 -0
  103. package/lib/nitrogen/nitrogen/generated/shared/c++/HybridPerpDepthBarsSpec.hpp +78 -0
  104. package/lib/nitrogen/nitrogen/generated/shared/c++/HybridPerpSideRatioSpec.cpp +36 -0
  105. package/lib/nitrogen/nitrogen/generated/shared/c++/HybridPerpSideRatioSpec.hpp +77 -0
  106. package/lib/nitrogen/nitrogen/generated/shared/c++/views/HybridPerpDepthBarsComponent.cpp +171 -0
  107. package/lib/nitrogen/nitrogen/generated/shared/c++/views/HybridPerpDepthBarsComponent.hpp +116 -0
  108. package/lib/nitrogen/nitrogen/generated/shared/c++/views/HybridPerpSideRatioComponent.cpp +171 -0
  109. package/lib/nitrogen/nitrogen/generated/shared/c++/views/HybridPerpSideRatioComponent.hpp +115 -0
  110. package/lib/nitrogen/nitrogen/generated/shared/json/PerpDepthBarsConfig.json +17 -0
  111. package/lib/nitrogen/nitrogen/generated/shared/json/PerpSideRatioConfig.json +17 -0
  112. package/lib/typescript/package.json +1 -0
  113. package/lib/typescript/src/PerpDepthBars.nitro.d.ts +37 -0
  114. package/lib/typescript/src/PerpDepthBars.nitro.d.ts.map +1 -0
  115. package/lib/typescript/src/PerpSideRatio.nitro.d.ts +29 -0
  116. package/lib/typescript/src/PerpSideRatio.nitro.d.ts.map +1 -0
  117. package/lib/typescript/src/index.d.ts +6 -0
  118. package/lib/typescript/src/index.d.ts.map +1 -0
  119. package/nitro.json +21 -0
  120. package/nitrogen/generated/android/c++/JHybridPerpDepthBarsSpec.cpp +130 -0
  121. package/nitrogen/generated/android/c++/JHybridPerpDepthBarsSpec.hpp +80 -0
  122. package/nitrogen/generated/android/c++/JHybridPerpSideRatioSpec.cpp +119 -0
  123. package/nitrogen/generated/android/c++/JHybridPerpSideRatioSpec.hpp +80 -0
  124. package/nitrogen/generated/android/c++/views/JHybridPerpDepthBarsStateUpdater.cpp +84 -0
  125. package/nitrogen/generated/android/c++/views/JHybridPerpDepthBarsStateUpdater.hpp +49 -0
  126. package/nitrogen/generated/android/c++/views/JHybridPerpSideRatioStateUpdater.cpp +84 -0
  127. package/nitrogen/generated/android/c++/views/JHybridPerpSideRatioStateUpdater.hpp +49 -0
  128. package/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/HybridPerpDepthBarsSpec.kt +101 -0
  129. package/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/HybridPerpSideRatioSpec.kt +101 -0
  130. package/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/perpdepthbarOnLoad.kt +35 -0
  131. package/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpDepthBarsManager.kt +50 -0
  132. package/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpDepthBarsStateUpdater.kt +23 -0
  133. package/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpSideRatioManager.kt +50 -0
  134. package/nitrogen/generated/android/kotlin/com/margelo/nitro/perpdepthbar/views/HybridPerpSideRatioStateUpdater.kt +23 -0
  135. package/nitrogen/generated/android/perpdepthbar+autolinking.cmake +87 -0
  136. package/nitrogen/generated/android/perpdepthbar+autolinking.gradle +27 -0
  137. package/nitrogen/generated/android/perpdepthbarOnLoad.cpp +58 -0
  138. package/nitrogen/generated/android/perpdepthbarOnLoad.hpp +25 -0
  139. package/nitrogen/generated/ios/PerpDepthBar+autolinking.rb +60 -0
  140. package/nitrogen/generated/ios/PerpDepthBar-Swift-Cxx-Bridge.cpp +50 -0
  141. package/nitrogen/generated/ios/PerpDepthBar-Swift-Cxx-Bridge.hpp +69 -0
  142. package/nitrogen/generated/ios/PerpDepthBar-Swift-Cxx-Umbrella.hpp +48 -0
  143. package/nitrogen/generated/ios/PerpDepthBarAutolinking.mm +41 -0
  144. package/nitrogen/generated/ios/PerpDepthBarAutolinking.swift +40 -0
  145. package/nitrogen/generated/ios/c++/HybridPerpDepthBarsSpecSwift.cpp +11 -0
  146. package/nitrogen/generated/ios/c++/HybridPerpDepthBarsSpecSwift.hpp +120 -0
  147. package/nitrogen/generated/ios/c++/HybridPerpSideRatioSpecSwift.cpp +11 -0
  148. package/nitrogen/generated/ios/c++/HybridPerpSideRatioSpecSwift.hpp +118 -0
  149. package/nitrogen/generated/ios/c++/views/HybridPerpDepthBarsComponent.mm +131 -0
  150. package/nitrogen/generated/ios/c++/views/HybridPerpSideRatioComponent.mm +131 -0
  151. package/nitrogen/generated/ios/swift/HybridPerpDepthBarsSpec.swift +63 -0
  152. package/nitrogen/generated/ios/swift/HybridPerpDepthBarsSpec_cxx.swift +223 -0
  153. package/nitrogen/generated/ios/swift/HybridPerpSideRatioSpec.swift +63 -0
  154. package/nitrogen/generated/ios/swift/HybridPerpSideRatioSpec_cxx.swift +217 -0
  155. package/nitrogen/generated/shared/c++/HybridPerpDepthBarsSpec.cpp +36 -0
  156. package/nitrogen/generated/shared/c++/HybridPerpDepthBarsSpec.hpp +78 -0
  157. package/nitrogen/generated/shared/c++/HybridPerpSideRatioSpec.cpp +36 -0
  158. package/nitrogen/generated/shared/c++/HybridPerpSideRatioSpec.hpp +77 -0
  159. package/nitrogen/generated/shared/c++/views/HybridPerpDepthBarsComponent.cpp +171 -0
  160. package/nitrogen/generated/shared/c++/views/HybridPerpDepthBarsComponent.hpp +116 -0
  161. package/nitrogen/generated/shared/c++/views/HybridPerpSideRatioComponent.cpp +171 -0
  162. package/nitrogen/generated/shared/c++/views/HybridPerpSideRatioComponent.hpp +115 -0
  163. package/nitrogen/generated/shared/json/PerpDepthBarsConfig.json +17 -0
  164. package/nitrogen/generated/shared/json/PerpSideRatioConfig.json +17 -0
  165. package/package.json +170 -0
  166. package/src/PerpDepthBars.nitro.ts +42 -0
  167. package/src/PerpSideRatio.nitro.ts +34 -0
  168. package/src/index.tsx +30 -0
@@ -0,0 +1,131 @@
1
+ ///
2
+ /// HybridPerpDepthBarsComponent.mm
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #import "HybridPerpDepthBarsComponent.hpp"
9
+ #import <memory>
10
+ #import <react/renderer/componentregistry/ComponentDescriptorProvider.h>
11
+ #import <React/RCTViewComponentView.h>
12
+ #import <React/RCTComponentViewFactory.h>
13
+ #import <React/UIView+ComponentViewProtocol.h>
14
+ #import <NitroModules/NitroDefines.hpp>
15
+ #import <UIKit/UIKit.h>
16
+
17
+ #import "HybridPerpDepthBarsSpecSwift.hpp"
18
+ #import "PerpDepthBar-Swift-Cxx-Umbrella.hpp"
19
+
20
+ using namespace facebook;
21
+ using namespace margelo::nitro::perpdepthbar;
22
+ using namespace margelo::nitro::perpdepthbar::views;
23
+
24
+ /**
25
+ * Represents the React Native View holder for the Nitro "PerpDepthBars" HybridView.
26
+ */
27
+ @interface HybridPerpDepthBarsComponent: RCTViewComponentView
28
+ @end
29
+
30
+ @implementation HybridPerpDepthBarsComponent {
31
+ std::shared_ptr<HybridPerpDepthBarsSpecSwift> _hybridView;
32
+ }
33
+
34
+ + (void) load {
35
+ [super load];
36
+ [RCTComponentViewFactory.currentComponentViewFactory registerComponentViewClass:[HybridPerpDepthBarsComponent class]];
37
+ }
38
+
39
+ + (react::ComponentDescriptorProvider) componentDescriptorProvider {
40
+ return react::concreteComponentDescriptorProvider<HybridPerpDepthBarsComponentDescriptor>();
41
+ }
42
+
43
+ - (instancetype) init {
44
+ if (self = [super init]) {
45
+ std::shared_ptr<HybridPerpDepthBarsSpec> hybridView = PerpDepthBar::PerpDepthBarAutolinking::createPerpDepthBars();
46
+ _hybridView = std::dynamic_pointer_cast<HybridPerpDepthBarsSpecSwift>(hybridView);
47
+ [self updateView];
48
+ }
49
+ return self;
50
+ }
51
+
52
+ - (void) updateView {
53
+ // 1. Get Swift part
54
+ PerpDepthBar::HybridPerpDepthBarsSpec_cxx& swiftPart = _hybridView->getSwiftPart();
55
+
56
+ // 2. Get UIView*
57
+ void* viewUnsafe = swiftPart.getView();
58
+ UIView* view = (__bridge_transfer UIView*) viewUnsafe;
59
+
60
+ // 3. Update RCTViewComponentView's [contentView]
61
+ [self setContentView:view];
62
+ }
63
+
64
+ - (void) updateProps:(const std::shared_ptr<const react::Props>&)props
65
+ oldProps:(const std::shared_ptr<const react::Props>&)oldProps {
66
+ // 1. Downcast props
67
+ const auto& newViewPropsConst = *std::static_pointer_cast<HybridPerpDepthBarsProps const>(props);
68
+ auto& newViewProps = const_cast<HybridPerpDepthBarsProps&>(newViewPropsConst);
69
+ PerpDepthBar::HybridPerpDepthBarsSpec_cxx& swiftPart = _hybridView->getSwiftPart();
70
+
71
+ // 2. Update each prop individually
72
+ swiftPart.beforeUpdate();
73
+
74
+ // percents: array
75
+ if (newViewProps.percents.isDirty) {
76
+ swiftPart.setPercents(newViewProps.percents.value);
77
+ newViewProps.percents.isDirty = false;
78
+ }
79
+ // rowHeight: number
80
+ if (newViewProps.rowHeight.isDirty) {
81
+ swiftPart.setRowHeight(newViewProps.rowHeight.value);
82
+ newViewProps.rowHeight.isDirty = false;
83
+ }
84
+ // rowMarginTop: number
85
+ if (newViewProps.rowMarginTop.isDirty) {
86
+ swiftPart.setRowMarginTop(newViewProps.rowMarginTop.value);
87
+ newViewProps.rowMarginTop.isDirty = false;
88
+ }
89
+ // barInset: number
90
+ if (newViewProps.barInset.isDirty) {
91
+ swiftPart.setBarInset(newViewProps.barInset.value);
92
+ newViewProps.barInset.isDirty = false;
93
+ }
94
+ // color: string
95
+ if (newViewProps.color.isDirty) {
96
+ swiftPart.setColor(newViewProps.color.value);
97
+ newViewProps.color.isDirty = false;
98
+ }
99
+ // origin: string
100
+ if (newViewProps.origin.isDirty) {
101
+ swiftPart.setOrigin(newViewProps.origin.value);
102
+ newViewProps.origin.isDirty = false;
103
+ }
104
+ // reducedMotion: boolean
105
+ if (newViewProps.reducedMotion.isDirty) {
106
+ swiftPart.setReducedMotion(newViewProps.reducedMotion.value);
107
+ newViewProps.reducedMotion.isDirty = false;
108
+ }
109
+ // epoch: number
110
+ if (newViewProps.epoch.isDirty) {
111
+ swiftPart.setEpoch(newViewProps.epoch.value);
112
+ newViewProps.epoch.isDirty = false;
113
+ }
114
+
115
+ swiftPart.afterUpdate();
116
+
117
+ // 3. Update hybridRef if it changed
118
+ if (newViewProps.hybridRef.isDirty) {
119
+ // hybridRef changed - call it with new this
120
+ const auto& maybeFunc = newViewProps.hybridRef.value;
121
+ if (maybeFunc.has_value()) {
122
+ maybeFunc.value()(_hybridView);
123
+ }
124
+ newViewProps.hybridRef.isDirty = false;
125
+ }
126
+
127
+ // 4. Continue in base class
128
+ [super updateProps:props oldProps:oldProps];
129
+ }
130
+
131
+ @end
@@ -0,0 +1,131 @@
1
+ ///
2
+ /// HybridPerpSideRatioComponent.mm
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #import "HybridPerpSideRatioComponent.hpp"
9
+ #import <memory>
10
+ #import <react/renderer/componentregistry/ComponentDescriptorProvider.h>
11
+ #import <React/RCTViewComponentView.h>
12
+ #import <React/RCTComponentViewFactory.h>
13
+ #import <React/UIView+ComponentViewProtocol.h>
14
+ #import <NitroModules/NitroDefines.hpp>
15
+ #import <UIKit/UIKit.h>
16
+
17
+ #import "HybridPerpSideRatioSpecSwift.hpp"
18
+ #import "PerpDepthBar-Swift-Cxx-Umbrella.hpp"
19
+
20
+ using namespace facebook;
21
+ using namespace margelo::nitro::perpdepthbar;
22
+ using namespace margelo::nitro::perpdepthbar::views;
23
+
24
+ /**
25
+ * Represents the React Native View holder for the Nitro "PerpSideRatio" HybridView.
26
+ */
27
+ @interface HybridPerpSideRatioComponent: RCTViewComponentView
28
+ @end
29
+
30
+ @implementation HybridPerpSideRatioComponent {
31
+ std::shared_ptr<HybridPerpSideRatioSpecSwift> _hybridView;
32
+ }
33
+
34
+ + (void) load {
35
+ [super load];
36
+ [RCTComponentViewFactory.currentComponentViewFactory registerComponentViewClass:[HybridPerpSideRatioComponent class]];
37
+ }
38
+
39
+ + (react::ComponentDescriptorProvider) componentDescriptorProvider {
40
+ return react::concreteComponentDescriptorProvider<HybridPerpSideRatioComponentDescriptor>();
41
+ }
42
+
43
+ - (instancetype) init {
44
+ if (self = [super init]) {
45
+ std::shared_ptr<HybridPerpSideRatioSpec> hybridView = PerpDepthBar::PerpDepthBarAutolinking::createPerpSideRatio();
46
+ _hybridView = std::dynamic_pointer_cast<HybridPerpSideRatioSpecSwift>(hybridView);
47
+ [self updateView];
48
+ }
49
+ return self;
50
+ }
51
+
52
+ - (void) updateView {
53
+ // 1. Get Swift part
54
+ PerpDepthBar::HybridPerpSideRatioSpec_cxx& swiftPart = _hybridView->getSwiftPart();
55
+
56
+ // 2. Get UIView*
57
+ void* viewUnsafe = swiftPart.getView();
58
+ UIView* view = (__bridge_transfer UIView*) viewUnsafe;
59
+
60
+ // 3. Update RCTViewComponentView's [contentView]
61
+ [self setContentView:view];
62
+ }
63
+
64
+ - (void) updateProps:(const std::shared_ptr<const react::Props>&)props
65
+ oldProps:(const std::shared_ptr<const react::Props>&)oldProps {
66
+ // 1. Downcast props
67
+ const auto& newViewPropsConst = *std::static_pointer_cast<HybridPerpSideRatioProps const>(props);
68
+ auto& newViewProps = const_cast<HybridPerpSideRatioProps&>(newViewPropsConst);
69
+ PerpDepthBar::HybridPerpSideRatioSpec_cxx& swiftPart = _hybridView->getSwiftPart();
70
+
71
+ // 2. Update each prop individually
72
+ swiftPart.beforeUpdate();
73
+
74
+ // bidPercentage: number
75
+ if (newViewProps.bidPercentage.isDirty) {
76
+ swiftPart.setBidPercentage(newViewProps.bidPercentage.value);
77
+ newViewProps.bidPercentage.isDirty = false;
78
+ }
79
+ // askPercentage: number
80
+ if (newViewProps.askPercentage.isDirty) {
81
+ swiftPart.setAskPercentage(newViewProps.askPercentage.value);
82
+ newViewProps.askPercentage.isDirty = false;
83
+ }
84
+ // longColor: string
85
+ if (newViewProps.longColor.isDirty) {
86
+ swiftPart.setLongColor(newViewProps.longColor.value);
87
+ newViewProps.longColor.isDirty = false;
88
+ }
89
+ // shortColor: string
90
+ if (newViewProps.shortColor.isDirty) {
91
+ swiftPart.setShortColor(newViewProps.shortColor.value);
92
+ newViewProps.shortColor.isDirty = false;
93
+ }
94
+ // segmentHeight: number
95
+ if (newViewProps.segmentHeight.isDirty) {
96
+ swiftPart.setSegmentHeight(newViewProps.segmentHeight.value);
97
+ newViewProps.segmentHeight.isDirty = false;
98
+ }
99
+ // cornerRadius: number
100
+ if (newViewProps.cornerRadius.isDirty) {
101
+ swiftPart.setCornerRadius(newViewProps.cornerRadius.value);
102
+ newViewProps.cornerRadius.isDirty = false;
103
+ }
104
+ // gap: number
105
+ if (newViewProps.gap.isDirty) {
106
+ swiftPart.setGap(newViewProps.gap.value);
107
+ newViewProps.gap.isDirty = false;
108
+ }
109
+ // reducedMotion: boolean
110
+ if (newViewProps.reducedMotion.isDirty) {
111
+ swiftPart.setReducedMotion(newViewProps.reducedMotion.value);
112
+ newViewProps.reducedMotion.isDirty = false;
113
+ }
114
+
115
+ swiftPart.afterUpdate();
116
+
117
+ // 3. Update hybridRef if it changed
118
+ if (newViewProps.hybridRef.isDirty) {
119
+ // hybridRef changed - call it with new this
120
+ const auto& maybeFunc = newViewProps.hybridRef.value;
121
+ if (maybeFunc.has_value()) {
122
+ maybeFunc.value()(_hybridView);
123
+ }
124
+ newViewProps.hybridRef.isDirty = false;
125
+ }
126
+
127
+ // 4. Continue in base class
128
+ [super updateProps:props oldProps:oldProps];
129
+ }
130
+
131
+ @end
@@ -0,0 +1,63 @@
1
+ ///
2
+ /// HybridPerpDepthBarsSpec.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import Foundation
9
+ import NitroModules
10
+
11
+ /// See ``HybridPerpDepthBarsSpec``
12
+ public protocol HybridPerpDepthBarsSpec_protocol: HybridObject, HybridView {
13
+ // Properties
14
+ var percents: [Double] { get set }
15
+ var rowHeight: Double { get set }
16
+ var rowMarginTop: Double { get set }
17
+ var barInset: Double { get set }
18
+ var color: String { get set }
19
+ var origin: String { get set }
20
+ var reducedMotion: Bool { get set }
21
+ var epoch: Double { get set }
22
+
23
+ // Methods
24
+
25
+ }
26
+
27
+ public extension HybridPerpDepthBarsSpec_protocol {
28
+ /// Default implementation of ``HybridObject.toString``
29
+ func toString() -> String {
30
+ return "[HybridObject PerpDepthBars]"
31
+ }
32
+ }
33
+
34
+ /// See ``HybridPerpDepthBarsSpec``
35
+ open class HybridPerpDepthBarsSpec_base {
36
+ private weak var cxxWrapper: HybridPerpDepthBarsSpec_cxx? = nil
37
+ public init() { }
38
+ public func getCxxWrapper() -> HybridPerpDepthBarsSpec_cxx {
39
+ #if DEBUG
40
+ guard self is HybridPerpDepthBarsSpec else {
41
+ fatalError("`self` is not a `HybridPerpDepthBarsSpec`! Did you accidentally inherit from `HybridPerpDepthBarsSpec_base` instead of `HybridPerpDepthBarsSpec`?")
42
+ }
43
+ #endif
44
+ if let cxxWrapper = self.cxxWrapper {
45
+ return cxxWrapper
46
+ } else {
47
+ let cxxWrapper = HybridPerpDepthBarsSpec_cxx(self as! HybridPerpDepthBarsSpec)
48
+ self.cxxWrapper = cxxWrapper
49
+ return cxxWrapper
50
+ }
51
+ }
52
+ }
53
+
54
+ /**
55
+ * A Swift base-protocol representing the PerpDepthBars HybridObject.
56
+ * Implement this protocol to create Swift-based instances of PerpDepthBars.
57
+ * ```swift
58
+ * class HybridPerpDepthBars : HybridPerpDepthBarsSpec {
59
+ * // ...
60
+ * }
61
+ * ```
62
+ */
63
+ public typealias HybridPerpDepthBarsSpec = HybridPerpDepthBarsSpec_protocol & HybridPerpDepthBarsSpec_base
@@ -0,0 +1,223 @@
1
+ ///
2
+ /// HybridPerpDepthBarsSpec_cxx.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import Foundation
9
+ import NitroModules
10
+
11
+ /**
12
+ * A class implementation that bridges HybridPerpDepthBarsSpec 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
+ * Also, some Swift types need to be bridged with special handling:
16
+ * - Enums need to be wrapped in Structs, otherwise they cannot be accessed bi-directionally (Swift bug: https://github.com/swiftlang/swift/issues/75330)
17
+ * - Other HybridObjects need to be wrapped/unwrapped from the Swift TCxx wrapper
18
+ * - Throwing methods need to be wrapped with a Result<T, Error> type, as exceptions cannot be propagated to C++
19
+ */
20
+ open class HybridPerpDepthBarsSpec_cxx {
21
+ /**
22
+ * The Swift <> C++ bridge's namespace (`margelo::nitro::perpdepthbar::bridge::swift`)
23
+ * from `PerpDepthBar-Swift-Cxx-Bridge.hpp`.
24
+ * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift.
25
+ */
26
+ public typealias bridge = margelo.nitro.perpdepthbar.bridge.swift
27
+
28
+ /**
29
+ * Holds an instance of the `HybridPerpDepthBarsSpec` Swift protocol.
30
+ */
31
+ private var __implementation: any HybridPerpDepthBarsSpec
32
+
33
+ /**
34
+ * Holds a weak pointer to the C++ class that wraps the Swift class.
35
+ */
36
+ private var __cxxPart: bridge.std__weak_ptr_HybridPerpDepthBarsSpec_
37
+
38
+ /**
39
+ * Create a new `HybridPerpDepthBarsSpec_cxx` that wraps the given `HybridPerpDepthBarsSpec`.
40
+ * All properties and methods bridge to C++ types.
41
+ */
42
+ public init(_ implementation: any HybridPerpDepthBarsSpec) {
43
+ self.__implementation = implementation
44
+ self.__cxxPart = .init()
45
+ /* no base class */
46
+ }
47
+
48
+ /**
49
+ * Get the actual `HybridPerpDepthBarsSpec` instance this class wraps.
50
+ */
51
+ @inline(__always)
52
+ public func getHybridPerpDepthBarsSpec() -> any HybridPerpDepthBarsSpec {
53
+ return __implementation
54
+ }
55
+
56
+ /**
57
+ * Casts this instance to a retained unsafe raw pointer.
58
+ * This acquires one additional strong reference on the object!
59
+ */
60
+ public func toUnsafe() -> UnsafeMutableRawPointer {
61
+ return Unmanaged.passRetained(self).toOpaque()
62
+ }
63
+
64
+ /**
65
+ * Casts an unsafe pointer to a `HybridPerpDepthBarsSpec_cxx`.
66
+ * The pointer has to be a retained opaque `Unmanaged<HybridPerpDepthBarsSpec_cxx>`.
67
+ * This removes one strong reference from the object!
68
+ */
69
+ public class func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> HybridPerpDepthBarsSpec_cxx {
70
+ return Unmanaged<HybridPerpDepthBarsSpec_cxx>.fromOpaque(pointer).takeRetainedValue()
71
+ }
72
+
73
+ /**
74
+ * Gets (or creates) the C++ part of this Hybrid Object.
75
+ * The C++ part is a `std::shared_ptr<HybridPerpDepthBarsSpec>`.
76
+ */
77
+ public func getCxxPart() -> bridge.std__shared_ptr_HybridPerpDepthBarsSpec_ {
78
+ let cachedCxxPart = self.__cxxPart.lock()
79
+ if Bool(fromCxx: cachedCxxPart) {
80
+ return cachedCxxPart
81
+ } else {
82
+ let newCxxPart = bridge.create_std__shared_ptr_HybridPerpDepthBarsSpec_(self.toUnsafe())
83
+ __cxxPart = bridge.weakify_std__shared_ptr_HybridPerpDepthBarsSpec_(newCxxPart)
84
+ return newCxxPart
85
+ }
86
+ }
87
+
88
+
89
+
90
+ /**
91
+ * Get the memory size of the Swift class (plus size of any other allocations)
92
+ * so the JS VM can properly track it and garbage-collect the JS object if needed.
93
+ */
94
+ @inline(__always)
95
+ public var memorySize: Int {
96
+ return MemoryHelper.getSizeOf(self.__implementation) + self.__implementation.memorySize
97
+ }
98
+
99
+ /**
100
+ * Call dispose() on the Swift class.
101
+ * This _may_ be called manually from JS.
102
+ */
103
+ @inline(__always)
104
+ public func dispose() {
105
+ self.__implementation.dispose()
106
+ }
107
+
108
+ /**
109
+ * Call toString() on the Swift class.
110
+ */
111
+ @inline(__always)
112
+ public func toString() -> String {
113
+ return self.__implementation.toString()
114
+ }
115
+
116
+ // Properties
117
+ public final var percents: bridge.std__vector_double_ {
118
+ @inline(__always)
119
+ get {
120
+ return { () -> bridge.std__vector_double_ in
121
+ var __vector = bridge.create_std__vector_double_(self.__implementation.percents.count)
122
+ for __item in self.__implementation.percents {
123
+ __vector.push_back(__item)
124
+ }
125
+ return __vector
126
+ }()
127
+ }
128
+ @inline(__always)
129
+ set {
130
+ self.__implementation.percents = newValue.map({ __item in __item })
131
+ }
132
+ }
133
+
134
+ public final var rowHeight: Double {
135
+ @inline(__always)
136
+ get {
137
+ return self.__implementation.rowHeight
138
+ }
139
+ @inline(__always)
140
+ set {
141
+ self.__implementation.rowHeight = newValue
142
+ }
143
+ }
144
+
145
+ public final var rowMarginTop: Double {
146
+ @inline(__always)
147
+ get {
148
+ return self.__implementation.rowMarginTop
149
+ }
150
+ @inline(__always)
151
+ set {
152
+ self.__implementation.rowMarginTop = newValue
153
+ }
154
+ }
155
+
156
+ public final var barInset: Double {
157
+ @inline(__always)
158
+ get {
159
+ return self.__implementation.barInset
160
+ }
161
+ @inline(__always)
162
+ set {
163
+ self.__implementation.barInset = newValue
164
+ }
165
+ }
166
+
167
+ public final var color: std.string {
168
+ @inline(__always)
169
+ get {
170
+ return std.string(self.__implementation.color)
171
+ }
172
+ @inline(__always)
173
+ set {
174
+ self.__implementation.color = String(newValue)
175
+ }
176
+ }
177
+
178
+ public final var origin: std.string {
179
+ @inline(__always)
180
+ get {
181
+ return std.string(self.__implementation.origin)
182
+ }
183
+ @inline(__always)
184
+ set {
185
+ self.__implementation.origin = String(newValue)
186
+ }
187
+ }
188
+
189
+ public final var reducedMotion: Bool {
190
+ @inline(__always)
191
+ get {
192
+ return self.__implementation.reducedMotion
193
+ }
194
+ @inline(__always)
195
+ set {
196
+ self.__implementation.reducedMotion = newValue
197
+ }
198
+ }
199
+
200
+ public final var epoch: Double {
201
+ @inline(__always)
202
+ get {
203
+ return self.__implementation.epoch
204
+ }
205
+ @inline(__always)
206
+ set {
207
+ self.__implementation.epoch = newValue
208
+ }
209
+ }
210
+
211
+ // Methods
212
+ public final func getView() -> UnsafeMutableRawPointer {
213
+ return Unmanaged.passRetained(__implementation.view).toOpaque()
214
+ }
215
+
216
+ public final func beforeUpdate() {
217
+ __implementation.beforeUpdate()
218
+ }
219
+
220
+ public final func afterUpdate() {
221
+ __implementation.afterUpdate()
222
+ }
223
+ }
@@ -0,0 +1,63 @@
1
+ ///
2
+ /// HybridPerpSideRatioSpec.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2026 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import Foundation
9
+ import NitroModules
10
+
11
+ /// See ``HybridPerpSideRatioSpec``
12
+ public protocol HybridPerpSideRatioSpec_protocol: HybridObject, HybridView {
13
+ // Properties
14
+ var bidPercentage: Double { get set }
15
+ var askPercentage: Double { get set }
16
+ var longColor: String { get set }
17
+ var shortColor: String { get set }
18
+ var segmentHeight: Double { get set }
19
+ var cornerRadius: Double { get set }
20
+ var gap: Double { get set }
21
+ var reducedMotion: Bool { get set }
22
+
23
+ // Methods
24
+
25
+ }
26
+
27
+ public extension HybridPerpSideRatioSpec_protocol {
28
+ /// Default implementation of ``HybridObject.toString``
29
+ func toString() -> String {
30
+ return "[HybridObject PerpSideRatio]"
31
+ }
32
+ }
33
+
34
+ /// See ``HybridPerpSideRatioSpec``
35
+ open class HybridPerpSideRatioSpec_base {
36
+ private weak var cxxWrapper: HybridPerpSideRatioSpec_cxx? = nil
37
+ public init() { }
38
+ public func getCxxWrapper() -> HybridPerpSideRatioSpec_cxx {
39
+ #if DEBUG
40
+ guard self is HybridPerpSideRatioSpec else {
41
+ fatalError("`self` is not a `HybridPerpSideRatioSpec`! Did you accidentally inherit from `HybridPerpSideRatioSpec_base` instead of `HybridPerpSideRatioSpec`?")
42
+ }
43
+ #endif
44
+ if let cxxWrapper = self.cxxWrapper {
45
+ return cxxWrapper
46
+ } else {
47
+ let cxxWrapper = HybridPerpSideRatioSpec_cxx(self as! HybridPerpSideRatioSpec)
48
+ self.cxxWrapper = cxxWrapper
49
+ return cxxWrapper
50
+ }
51
+ }
52
+ }
53
+
54
+ /**
55
+ * A Swift base-protocol representing the PerpSideRatio HybridObject.
56
+ * Implement this protocol to create Swift-based instances of PerpSideRatio.
57
+ * ```swift
58
+ * class HybridPerpSideRatio : HybridPerpSideRatioSpec {
59
+ * // ...
60
+ * }
61
+ * ```
62
+ */
63
+ public typealias HybridPerpSideRatioSpec = HybridPerpSideRatioSpec_protocol & HybridPerpSideRatioSpec_base