@vxrn/native 1.12.8-1774390675831

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 (176) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/android/build.gradle +32 -0
  3. package/android/src/main/AndroidManifest.xml +2 -0
  4. package/android/src/main/java/dev/vxrn/native/VxrnNativeModule.kt +117 -0
  5. package/android/src/main/java/dev/vxrn/native/VxrnNativePackage.kt +16 -0
  6. package/dist/cjs/color/android.dynamic.types.cjs +16 -0
  7. package/dist/cjs/color/android.dynamic.types.native.js +19 -0
  8. package/dist/cjs/color/android.dynamic.types.native.js.map +1 -0
  9. package/dist/cjs/color/android.material.types.cjs +16 -0
  10. package/dist/cjs/color/android.material.types.native.js +19 -0
  11. package/dist/cjs/color/android.material.types.native.js.map +1 -0
  12. package/dist/cjs/color/index.cjs +66 -0
  13. package/dist/cjs/color/index.native.js +69 -0
  14. package/dist/cjs/color/index.native.js.map +1 -0
  15. package/dist/cjs/color/ios.types.cjs +16 -0
  16. package/dist/cjs/color/ios.types.native.js +19 -0
  17. package/dist/cjs/color/ios.types.native.js.map +1 -0
  18. package/dist/cjs/color/materialColor.cjs +32 -0
  19. package/dist/cjs/color/materialColor.native.js +43 -0
  20. package/dist/cjs/color/materialColor.native.js.map +1 -0
  21. package/dist/cjs/index.cjs +37 -0
  22. package/dist/cjs/index.native.js +40 -0
  23. package/dist/cjs/index.native.js.map +1 -0
  24. package/dist/cjs/menu/index.cjs +28 -0
  25. package/dist/cjs/menu/index.native.js +47 -0
  26. package/dist/cjs/menu/index.native.js.map +1 -0
  27. package/dist/cjs/menu/types.cjs +16 -0
  28. package/dist/cjs/menu/types.native.js +19 -0
  29. package/dist/cjs/menu/types.native.js.map +1 -0
  30. package/dist/cjs/split-view/index.cjs +26 -0
  31. package/dist/cjs/split-view/index.native.js +29 -0
  32. package/dist/cjs/split-view/index.native.js.map +1 -0
  33. package/dist/cjs/split-view/split-view.cjs +80 -0
  34. package/dist/cjs/split-view/split-view.native.js +88 -0
  35. package/dist/cjs/split-view/split-view.native.js.map +1 -0
  36. package/dist/cjs/toolbar/index.cjs +32 -0
  37. package/dist/cjs/toolbar/index.native.js +60 -0
  38. package/dist/cjs/toolbar/index.native.js.map +1 -0
  39. package/dist/cjs/toolbar/types.cjs +16 -0
  40. package/dist/cjs/toolbar/types.native.js +19 -0
  41. package/dist/cjs/toolbar/types.native.js.map +1 -0
  42. package/dist/cjs/zoom/index.cjs +36 -0
  43. package/dist/cjs/zoom/index.native.js +65 -0
  44. package/dist/cjs/zoom/index.native.js.map +1 -0
  45. package/dist/cjs/zoom/types.cjs +16 -0
  46. package/dist/cjs/zoom/types.native.js +19 -0
  47. package/dist/cjs/zoom/types.native.js.map +1 -0
  48. package/dist/esm/color/android.dynamic.types.mjs +2 -0
  49. package/dist/esm/color/android.dynamic.types.mjs.map +1 -0
  50. package/dist/esm/color/android.dynamic.types.native.js +2 -0
  51. package/dist/esm/color/android.dynamic.types.native.js.map +1 -0
  52. package/dist/esm/color/android.material.types.mjs +2 -0
  53. package/dist/esm/color/android.material.types.mjs.map +1 -0
  54. package/dist/esm/color/android.material.types.native.js +2 -0
  55. package/dist/esm/color/android.material.types.native.js.map +1 -0
  56. package/dist/esm/color/index.mjs +42 -0
  57. package/dist/esm/color/index.mjs.map +1 -0
  58. package/dist/esm/color/index.native.js +42 -0
  59. package/dist/esm/color/index.native.js.map +1 -0
  60. package/dist/esm/color/ios.types.mjs +2 -0
  61. package/dist/esm/color/ios.types.mjs.map +1 -0
  62. package/dist/esm/color/ios.types.native.js +2 -0
  63. package/dist/esm/color/ios.types.native.js.map +1 -0
  64. package/dist/esm/color/materialColor.mjs +8 -0
  65. package/dist/esm/color/materialColor.mjs.map +1 -0
  66. package/dist/esm/color/materialColor.native.js +16 -0
  67. package/dist/esm/color/materialColor.native.js.map +1 -0
  68. package/dist/esm/index.mjs +7 -0
  69. package/dist/esm/index.mjs.map +1 -0
  70. package/dist/esm/index.native.js +7 -0
  71. package/dist/esm/index.native.js.map +1 -0
  72. package/dist/esm/menu/index.mjs +5 -0
  73. package/dist/esm/menu/index.mjs.map +1 -0
  74. package/dist/esm/menu/index.native.js +21 -0
  75. package/dist/esm/menu/index.native.js.map +1 -0
  76. package/dist/esm/menu/types.mjs +2 -0
  77. package/dist/esm/menu/types.mjs.map +1 -0
  78. package/dist/esm/menu/types.native.js +2 -0
  79. package/dist/esm/menu/types.native.js.map +1 -0
  80. package/dist/esm/split-view/index.mjs +3 -0
  81. package/dist/esm/split-view/index.mjs.map +1 -0
  82. package/dist/esm/split-view/index.native.js +3 -0
  83. package/dist/esm/split-view/index.native.js.map +1 -0
  84. package/dist/esm/split-view/split-view.mjs +46 -0
  85. package/dist/esm/split-view/split-view.mjs.map +1 -0
  86. package/dist/esm/split-view/split-view.native.js +51 -0
  87. package/dist/esm/split-view/split-view.native.js.map +1 -0
  88. package/dist/esm/toolbar/index.mjs +8 -0
  89. package/dist/esm/toolbar/index.mjs.map +1 -0
  90. package/dist/esm/toolbar/index.native.js +33 -0
  91. package/dist/esm/toolbar/index.native.js.map +1 -0
  92. package/dist/esm/toolbar/types.mjs +2 -0
  93. package/dist/esm/toolbar/types.mjs.map +1 -0
  94. package/dist/esm/toolbar/types.native.js +2 -0
  95. package/dist/esm/toolbar/types.native.js.map +1 -0
  96. package/dist/esm/zoom/index.mjs +11 -0
  97. package/dist/esm/zoom/index.mjs.map +1 -0
  98. package/dist/esm/zoom/index.native.js +37 -0
  99. package/dist/esm/zoom/index.native.js.map +1 -0
  100. package/dist/esm/zoom/types.mjs +2 -0
  101. package/dist/esm/zoom/types.mjs.map +1 -0
  102. package/dist/esm/zoom/types.native.js +2 -0
  103. package/dist/esm/zoom/types.native.js.map +1 -0
  104. package/ios/Menu/MenuActionView.swift +339 -0
  105. package/ios/Menu/VxrnMenuActionManager.m +47 -0
  106. package/ios/Toolbar/FontUtils.swift +46 -0
  107. package/ios/Toolbar/ToolbarHostView.swift +138 -0
  108. package/ios/Toolbar/ToolbarItemView.swift +334 -0
  109. package/ios/Toolbar/VxrnToolbarHostManager.m +20 -0
  110. package/ios/Toolbar/VxrnToolbarItemManager.m +41 -0
  111. package/ios/VxrnNative-Bridging-Header.h +7 -0
  112. package/ios/VxrnNative.podspec +31 -0
  113. package/ios/ZoomTransition/VxrnZoomAlignmentManager.m +22 -0
  114. package/ios/ZoomTransition/VxrnZoomEnablerManager.m +23 -0
  115. package/ios/ZoomTransition/VxrnZoomSourceManager.m +24 -0
  116. package/ios/ZoomTransition/ZoomTransition.swift +384 -0
  117. package/package.json +82 -0
  118. package/react-native.config.js +14 -0
  119. package/src/color/android.dynamic.types.ts +384 -0
  120. package/src/color/android.material.types.ts +291 -0
  121. package/src/color/index.native.ts +75 -0
  122. package/src/color/index.ts +75 -0
  123. package/src/color/ios.types.ts +156 -0
  124. package/src/color/materialColor.native.ts +15 -0
  125. package/src/color/materialColor.ts +7 -0
  126. package/src/index.ts +20 -0
  127. package/src/menu/index.native.tsx +28 -0
  128. package/src/menu/index.ts +7 -0
  129. package/src/menu/types.ts +32 -0
  130. package/src/split-view/index.ts +2 -0
  131. package/src/split-view/split-view.tsx +80 -0
  132. package/src/toolbar/index.native.tsx +39 -0
  133. package/src/toolbar/index.ts +11 -0
  134. package/src/toolbar/types.ts +39 -0
  135. package/src/zoom/index.native.tsx +56 -0
  136. package/src/zoom/index.ts +28 -0
  137. package/src/zoom/types.ts +30 -0
  138. package/tsconfig.json +7 -0
  139. package/types/color/android.dynamic.types.d.ts +384 -0
  140. package/types/color/android.dynamic.types.d.ts.map +1 -0
  141. package/types/color/android.material.types.d.ts +291 -0
  142. package/types/color/android.material.types.d.ts.map +1 -0
  143. package/types/color/index.d.ts +25 -0
  144. package/types/color/index.d.ts.map +1 -0
  145. package/types/color/index.native.d.ts +25 -0
  146. package/types/color/index.native.d.ts.map +1 -0
  147. package/types/color/ios.types.d.ts +156 -0
  148. package/types/color/ios.types.d.ts.map +1 -0
  149. package/types/color/materialColor.d.ts +3 -0
  150. package/types/color/materialColor.d.ts.map +1 -0
  151. package/types/color/materialColor.native.d.ts +3 -0
  152. package/types/color/materialColor.native.d.ts.map +1 -0
  153. package/types/index.d.ts +10 -0
  154. package/types/index.d.ts.map +1 -0
  155. package/types/menu/index.d.ts +4 -0
  156. package/types/menu/index.d.ts.map +1 -0
  157. package/types/menu/index.native.d.ts +4 -0
  158. package/types/menu/index.native.d.ts.map +1 -0
  159. package/types/menu/types.d.ts +32 -0
  160. package/types/menu/types.d.ts.map +1 -0
  161. package/types/split-view/index.d.ts +3 -0
  162. package/types/split-view/index.d.ts.map +1 -0
  163. package/types/split-view/split-view.d.ts +19 -0
  164. package/types/split-view/split-view.d.ts.map +1 -0
  165. package/types/toolbar/index.d.ts +5 -0
  166. package/types/toolbar/index.d.ts.map +1 -0
  167. package/types/toolbar/index.native.d.ts +5 -0
  168. package/types/toolbar/index.native.d.ts.map +1 -0
  169. package/types/toolbar/types.d.ts +37 -0
  170. package/types/toolbar/types.d.ts.map +1 -0
  171. package/types/zoom/index.d.ts +6 -0
  172. package/types/zoom/index.d.ts.map +1 -0
  173. package/types/zoom/index.native.d.ts +6 -0
  174. package/types/zoom/index.native.d.ts.map +1 -0
  175. package/types/zoom/types.d.ts +26 -0
  176. package/types/zoom/types.d.ts.map +1 -0
@@ -0,0 +1,334 @@
1
+ // adapted from expo-router (MIT license) - https://github.com/expo/expo
2
+ import React
3
+
4
+ import UIKit
5
+
6
+ @objc(ToolbarItemView) public
7
+ class ToolbarItemView: RCTView {
8
+ // MARK: - internal state
9
+ var itemIdentifier: String = ""
10
+ var host: ToolbarHostView?
11
+ private var currentBarButtonItem: UIBarButtonItem?
12
+ @objc var onSelected: RCTDirectEventBlock?
13
+
14
+ // MARK: - props set from RN via @objc
15
+
16
+ @objc var identifier: NSString = "" {
17
+ didSet { itemIdentifier = identifier as String }
18
+ }
19
+
20
+ private var _type: ItemType?
21
+ @objc var type: NSString? {
22
+ didSet {
23
+ if let t = type as String? { _type = ItemType(rawValue: t) } else { _type = nil }
24
+ performRebuild()
25
+ }
26
+ }
27
+
28
+ @objc var title: NSString? {
29
+ didSet { performUpdate() }
30
+ }
31
+
32
+ @objc var systemImageName: NSString? {
33
+ didSet { performUpdate() }
34
+ }
35
+
36
+ @objc var xcassetName: NSString? {
37
+ didSet { performUpdate() }
38
+ }
39
+
40
+ @objc var imageSource: NSDictionary? {
41
+ didSet { resolveImage() }
42
+ }
43
+
44
+ private var resolvedImage: UIImage?
45
+
46
+ private func resolveImage() {
47
+ guard let source = imageSource, let uriObj = source["uri"] else {
48
+ resolvedImage = nil
49
+ performUpdate()
50
+ return
51
+ }
52
+ guard let uri = uriObj as? String, !uri.isEmpty, let url = URL(string: uri) else {
53
+ resolvedImage = nil
54
+ performUpdate()
55
+ return
56
+ }
57
+ URLSession.shared.dataTask(with: url) { [weak self] data, _, _ in
58
+ guard let data = data, let image = UIImage(data: data) else { return }
59
+ DispatchQueue.main.async {
60
+ self?.resolvedImage = image
61
+ self?.performUpdate()
62
+ }
63
+ }.resume()
64
+ }
65
+
66
+ @objc var tintColor_: UIColor? {
67
+ didSet { performUpdate() }
68
+ }
69
+ // we use customTintColor internally to avoid conflict with UIView.tintColor
70
+ var customTintColor: UIColor? { return tintColor_ }
71
+
72
+ private var _imageRenderingMode: ImageRenderingMode?
73
+ @objc var imageRenderingMode: NSString? {
74
+ didSet {
75
+ if let m = imageRenderingMode as String? { _imageRenderingMode = ImageRenderingMode(rawValue: m) } else { _imageRenderingMode = nil }
76
+ performUpdate()
77
+ }
78
+ }
79
+
80
+ @objc var hidesSharedBackground: Bool = false {
81
+ didSet { performUpdate() }
82
+ }
83
+
84
+ @objc var sharesBackground: Bool = true {
85
+ didSet { performUpdate() }
86
+ }
87
+
88
+ private var _barButtonItemStyle: UIBarButtonItem.Style?
89
+ @objc var barButtonItemStyle: NSString? {
90
+ didSet {
91
+ if let s = barButtonItemStyle as String? {
92
+ _barButtonItemStyle = BarItemStyle(rawValue: s)?.toUIBarButtonItemStyle()
93
+ } else {
94
+ _barButtonItemStyle = nil
95
+ }
96
+ performUpdate()
97
+ }
98
+ }
99
+
100
+ @objc var width: NSNumber? {
101
+ didSet { performUpdate() }
102
+ }
103
+
104
+ @objc var routerHidden: Bool = false {
105
+ didSet { performUpdate() }
106
+ }
107
+
108
+ @objc var selected: Bool = false {
109
+ didSet { performUpdate() }
110
+ }
111
+
112
+ @objc var badgeConfiguration: NSDictionary? {
113
+ didSet {
114
+ _badgeConfig = parseBadgeConfiguration(badgeConfiguration)
115
+ performUpdate()
116
+ }
117
+ }
118
+ private var _badgeConfig: BadgeConfiguration?
119
+
120
+ @objc var titleStyle: NSDictionary? {
121
+ didSet {
122
+ _titleStyle = parseTitleStyle(titleStyle)
123
+ performUpdate()
124
+ }
125
+ }
126
+ private var _titleStyle: TitleStyle?
127
+
128
+ // use unique names to avoid conflict with UIView's built-in accessibility properties
129
+ @objc var routerAccessibilityLabel: NSString? {
130
+ didSet { performUpdate() }
131
+ }
132
+
133
+ @objc var routerAccessibilityHint: NSString? {
134
+ didSet { performUpdate() }
135
+ }
136
+
137
+ @objc var disabled: Bool = false {
138
+ didSet { performUpdate() }
139
+ }
140
+
141
+ // MARK: - custom view child
142
+
143
+ private var customView: UIView? {
144
+ didSet { performRebuild() }
145
+ }
146
+
147
+ // MARK: - update / rebuild
148
+
149
+ func performRebuild() {
150
+ guard self.host != nil else { return }
151
+ rebuildBarButtonItem()
152
+ self.host?.updateToolbarItems()
153
+ }
154
+
155
+ func performUpdate() {
156
+ guard self.host != nil else { return }
157
+ updateBarButtonItem()
158
+ self.host?.updateToolbarItems()
159
+ }
160
+
161
+ @objc func handleAction() {
162
+ onSelected?([:])
163
+ }
164
+
165
+ var barButtonItem: UIBarButtonItem {
166
+ if let item = currentBarButtonItem { return item }
167
+ rebuildBarButtonItem()
168
+ return currentBarButtonItem ?? UIBarButtonItem()
169
+ }
170
+
171
+ private func updateBarButtonItem() {
172
+ guard let item = currentBarButtonItem else { rebuildBarButtonItem(); return }
173
+ applyContentProperties(to: item)
174
+ applyCommonProperties(to: item)
175
+ }
176
+
177
+ private func rebuildBarButtonItem() {
178
+ var item = UIBarButtonItem()
179
+ if let customView { item = UIBarButtonItem(customView: customView) }
180
+ else if _type == .fluidSpacer { item = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) }
181
+ else if _type == .fixedSpacer { item = UIBarButtonItem(barButtonSystemItem: .fixedSpace, target: nil, action: nil) }
182
+ else if _type == .searchBar {
183
+ guard #available(iOS 26.0, *), let controller = self.host?.findViewController() else {
184
+ currentBarButtonItem = nil; return
185
+ }
186
+ guard let navController = controller.navigationController, navController.isNavigationBarHidden == false else {
187
+ currentBarButtonItem = nil; return
188
+ }
189
+ item = controller.navigationItem.searchBarPlacementBarButtonItem
190
+ } else {
191
+ applyContentProperties(to: item)
192
+ }
193
+ item.target = self
194
+ item.action = #selector(handleAction)
195
+ applyCommonProperties(to: item)
196
+ currentBarButtonItem = item
197
+ }
198
+
199
+ private func applyContentProperties(to item: UIBarButtonItem) {
200
+ if _type == .normal || _type == nil {
201
+ item.title = (title as String?) ?? ""
202
+ if let resolvedImage = resolvedImage {
203
+ let renderingMode: UIImage.RenderingMode = _imageRenderingMode == .template ? .alwaysTemplate : .alwaysOriginal
204
+ item.image = resolvedImage.withRenderingMode(renderingMode)
205
+ } else if let xcassetName = xcassetName as String? {
206
+ let renderingMode: UIImage.RenderingMode = _imageRenderingMode == .template ? .alwaysTemplate : .alwaysOriginal
207
+ item.image = UIImage(named: xcassetName)?.withRenderingMode(renderingMode)
208
+ } else if let systemImageName = systemImageName as String? {
209
+ item.image = UIImage(systemName: systemImageName)
210
+ } else { item.image = nil }
211
+ item.tintColor = customTintColor
212
+ if let titleStyle = _titleStyle { FontUtils.setTitleStyle(fromConfig: titleStyle, for: item) }
213
+ else { FontUtils.clearTitleStyle(for: item) }
214
+ }
215
+ }
216
+
217
+ private func applyCommonProperties(to item: UIBarButtonItem) {
218
+ if #available(iOS 26.0, *) {
219
+ item.hidesSharedBackground = hidesSharedBackground
220
+ item.sharesBackground = sharesBackground
221
+ }
222
+ item.style = _barButtonItemStyle ?? .plain
223
+ item.width = width.map { CGFloat($0.doubleValue) } ?? 0
224
+ item.isSelected = selected
225
+ item.accessibilityLabel = routerAccessibilityLabel as String?
226
+ item.accessibilityHint = routerAccessibilityHint as String?
227
+ item.isEnabled = !disabled
228
+ if #available(iOS 26.0, *) {
229
+ if let badgeConfig = _badgeConfig {
230
+ var badge = UIBarButtonItem.Badge.indicator()
231
+ if let value = badgeConfig.value { badge = .string(value) }
232
+ if let backgroundColor = badgeConfig.backgroundColor { badge.backgroundColor = backgroundColor }
233
+ if let foregroundColor = badgeConfig.color { badge.foregroundColor = foregroundColor }
234
+ if badgeConfig.fontFamily != nil || badgeConfig.fontSize != nil || badgeConfig.fontWeight != nil {
235
+ badge.font = FontUtils.convertTitleStyleToFont(TitleStyle(
236
+ fontFamily: badgeConfig.fontFamily, fontSize: badgeConfig.fontSize, fontWeight: badgeConfig.fontWeight))
237
+ }
238
+ item.badge = badge
239
+ } else { item.badge = nil }
240
+ }
241
+ }
242
+
243
+ public override func insertReactSubview(_ subview: UIView!, at atIndex: Int) {
244
+ guard customView == nil else { return }
245
+ customView = subview
246
+ }
247
+
248
+ public override func removeReactSubview(_ subview: UIView!) {
249
+ if customView === subview { subview.removeFromSuperview(); customView = nil }
250
+ }
251
+ }
252
+
253
+ // MARK: - enums and structs (no Expo dependency)
254
+
255
+ enum ItemType: String {
256
+ case normal
257
+ case fixedSpacer
258
+ case fluidSpacer
259
+ case searchBar
260
+ }
261
+
262
+ enum BarItemStyle: String {
263
+ case plain
264
+ case prominent
265
+
266
+ func toUIBarButtonItemStyle() -> UIBarButtonItem.Style {
267
+ switch self {
268
+ case .plain: return .plain
269
+ case .prominent:
270
+ if #available(iOS 26.0, *) { return .prominent }
271
+ else { return .done }
272
+ }
273
+ }
274
+ }
275
+
276
+ enum ImageRenderingMode: String {
277
+ case template
278
+ case original
279
+ }
280
+
281
+ struct BadgeConfiguration: Equatable {
282
+ var value: String?
283
+ var backgroundColor: UIColor?
284
+ var color: UIColor?
285
+ var fontFamily: String?
286
+ var fontSize: Double?
287
+ var fontWeight: String?
288
+ }
289
+
290
+ struct TitleStyle: Equatable {
291
+ var fontFamily: String?
292
+ var fontSize: Double?
293
+ var fontWeight: String?
294
+ var color: UIColor?
295
+ }
296
+
297
+ // MARK: - dict -> struct helpers
298
+
299
+ func parseBadgeConfiguration(_ dict: NSDictionary?) -> BadgeConfiguration? {
300
+ guard let dict = dict else { return nil }
301
+ return BadgeConfiguration(
302
+ value: dict["value"] as? String,
303
+ backgroundColor: parseColor(dict["backgroundColor"]),
304
+ color: parseColor(dict["color"]),
305
+ fontFamily: dict["fontFamily"] as? String,
306
+ fontSize: dict["fontSize"] as? Double,
307
+ fontWeight: dict["fontWeight"] as? String
308
+ )
309
+ }
310
+
311
+ func parseTitleStyle(_ dict: NSDictionary?) -> TitleStyle? {
312
+ guard let dict = dict else { return nil }
313
+ return TitleStyle(
314
+ fontFamily: dict["fontFamily"] as? String,
315
+ fontSize: dict["fontSize"] as? Double,
316
+ fontWeight: dict["fontWeight"] as? String,
317
+ color: parseColor(dict["color"])
318
+ )
319
+ }
320
+
321
+ func parseColor(_ value: Any?) -> UIColor? {
322
+ guard let value = value else { return nil }
323
+ if let color = value as? UIColor { return color }
324
+ if let num = value as? NSNumber {
325
+ // RN passes colors as processed integers
326
+ let intVal = num.uint32Value
327
+ let a = CGFloat((intVal >> 24) & 0xFF) / 255.0
328
+ let r = CGFloat((intVal >> 16) & 0xFF) / 255.0
329
+ let g = CGFloat((intVal >> 8) & 0xFF) / 255.0
330
+ let b = CGFloat(intVal & 0xFF) / 255.0
331
+ return UIColor(red: r, green: g, blue: b, alpha: a)
332
+ }
333
+ return nil
334
+ }
@@ -0,0 +1,20 @@
1
+ #import <React/RCTViewManager.h>
2
+
3
+ #if __has_include("VxrnNative-Swift.h")
4
+ #import "VxrnNative-Swift.h"
5
+ #else
6
+ #import <VxrnNative/VxrnNative-Swift.h>
7
+ #endif
8
+
9
+ @interface VxrnToolbarHostManager : RCTViewManager
10
+ @end
11
+
12
+ @implementation VxrnToolbarHostManager
13
+
14
+ RCT_EXPORT_MODULE(VxrnToolbarHost)
15
+
16
+ - (UIView *)view {
17
+ return [ToolbarHostView new];
18
+ }
19
+
20
+ @end
@@ -0,0 +1,41 @@
1
+ #import <React/RCTViewManager.h>
2
+
3
+ #if __has_include("VxrnNative-Swift.h")
4
+ #import "VxrnNative-Swift.h"
5
+ #else
6
+ #import <VxrnNative/VxrnNative-Swift.h>
7
+ #endif
8
+
9
+ @interface VxrnToolbarItemManager : RCTViewManager
10
+ @end
11
+
12
+ @implementation VxrnToolbarItemManager
13
+
14
+ RCT_EXPORT_MODULE(VxrnToolbarItem)
15
+
16
+ - (UIView *)view {
17
+ return [ToolbarItemView new];
18
+ }
19
+
20
+ RCT_EXPORT_VIEW_PROPERTY(identifier, NSString)
21
+ RCT_EXPORT_VIEW_PROPERTY(type, NSString)
22
+ RCT_EXPORT_VIEW_PROPERTY(title, NSString)
23
+ RCT_EXPORT_VIEW_PROPERTY(systemImageName, NSString)
24
+ RCT_EXPORT_VIEW_PROPERTY(xcassetName, NSString)
25
+ RCT_EXPORT_VIEW_PROPERTY(imageSource, NSDictionary)
26
+ RCT_REMAP_VIEW_PROPERTY(tintColor, tintColor_, UIColor)
27
+ RCT_EXPORT_VIEW_PROPERTY(imageRenderingMode, NSString)
28
+ RCT_EXPORT_VIEW_PROPERTY(hidesSharedBackground, BOOL)
29
+ RCT_EXPORT_VIEW_PROPERTY(sharesBackground, BOOL)
30
+ RCT_EXPORT_VIEW_PROPERTY(barButtonItemStyle, NSString)
31
+ RCT_EXPORT_VIEW_PROPERTY(width, NSNumber)
32
+ RCT_REMAP_VIEW_PROPERTY(hidden, routerHidden, BOOL)
33
+ RCT_EXPORT_VIEW_PROPERTY(selected, BOOL)
34
+ RCT_EXPORT_VIEW_PROPERTY(badgeConfiguration, NSDictionary)
35
+ RCT_EXPORT_VIEW_PROPERTY(titleStyle, NSDictionary)
36
+ RCT_REMAP_VIEW_PROPERTY(accessibilityLabel, routerAccessibilityLabel, NSString)
37
+ RCT_REMAP_VIEW_PROPERTY(accessibilityHint, routerAccessibilityHint, NSString)
38
+ RCT_EXPORT_VIEW_PROPERTY(disabled, BOOL)
39
+ RCT_EXPORT_VIEW_PROPERTY(onSelected, RCTDirectEventBlock)
40
+
41
+ @end
@@ -0,0 +1,7 @@
1
+ #import <React/RCTViewManager.h>
2
+ #import <React/RCTBridgeModule.h>
3
+ #import <React/RCTView.h>
4
+ #import <React/RCTLog.h>
5
+ #import <React/RCTFont.h>
6
+ #import <React/RCTImageLoader.h>
7
+ #import <React/UIView+React.h>
@@ -0,0 +1,31 @@
1
+ require 'json'
2
+
3
+ package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
4
+
5
+ Pod::Spec.new do |s|
6
+ s.name = 'VxrnNative'
7
+ s.version = package['version']
8
+ s.summary = package['description']
9
+ s.description = package['description']
10
+ s.license = package['license']
11
+ s.author = 'vxrn'
12
+ s.homepage = 'https://github.com/onejs/one'
13
+ s.platforms = {
14
+ :ios => '15.1'
15
+ }
16
+ s.swift_version = '5.9'
17
+ s.source = { git: 'https://github.com/onejs/one.git' }
18
+ s.static_framework = true
19
+
20
+ s.dependency 'React-Core'
21
+
22
+ s.pod_target_xcconfig = {
23
+ 'DEFINES_MODULE' => 'YES',
24
+ 'SWIFT_COMPILATION_MODE' => 'wholemodule',
25
+ 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES',
26
+ 'OTHER_SWIFT_FLAGS' => '$(inherited) -Xcc -Wno-non-modular-include-in-framework-module',
27
+ }
28
+
29
+ s.source_files = "**/*.{h,m,swift,mm,cpp}"
30
+ s.exclude_files = 'Tests/**/*'
31
+ end
@@ -0,0 +1,22 @@
1
+ #import <React/RCTViewManager.h>
2
+
3
+ #if __has_include("VxrnNative-Swift.h")
4
+ #import "VxrnNative-Swift.h"
5
+ #else
6
+ #import <VxrnNative/VxrnNative-Swift.h>
7
+ #endif
8
+
9
+ @interface VxrnZoomAlignmentManager : RCTViewManager
10
+ @end
11
+
12
+ @implementation VxrnZoomAlignmentManager
13
+
14
+ RCT_EXPORT_MODULE(VxrnZoomAlignment)
15
+
16
+ - (UIView *)view {
17
+ return [ZoomTransitionAlignmentRectDetectorView new];
18
+ }
19
+
20
+ RCT_EXPORT_VIEW_PROPERTY(identifier, NSString)
21
+
22
+ @end
@@ -0,0 +1,23 @@
1
+ #import <React/RCTViewManager.h>
2
+
3
+ #if __has_include("VxrnNative-Swift.h")
4
+ #import "VxrnNative-Swift.h"
5
+ #else
6
+ #import <VxrnNative/VxrnNative-Swift.h>
7
+ #endif
8
+
9
+ @interface VxrnZoomEnablerManager : RCTViewManager
10
+ @end
11
+
12
+ @implementation VxrnZoomEnablerManager
13
+
14
+ RCT_EXPORT_MODULE(VxrnZoomEnabler)
15
+
16
+ - (UIView *)view {
17
+ return [ZoomTransitionEnablerView new];
18
+ }
19
+
20
+ RCT_EXPORT_VIEW_PROPERTY(zoomTransitionSourceIdentifier, NSString)
21
+ RCT_EXPORT_VIEW_PROPERTY(dismissalBoundsRect, NSDictionary)
22
+
23
+ @end
@@ -0,0 +1,24 @@
1
+ #import <React/RCTViewManager.h>
2
+
3
+ #if __has_include("VxrnNative-Swift.h")
4
+ #import "VxrnNative-Swift.h"
5
+ #else
6
+ #import <VxrnNative/VxrnNative-Swift.h>
7
+ #endif
8
+
9
+ @interface VxrnZoomSourceManager : RCTViewManager
10
+ @end
11
+
12
+ @implementation VxrnZoomSourceManager
13
+
14
+ RCT_EXPORT_MODULE(VxrnZoomSource)
15
+
16
+ - (UIView *)view {
17
+ return [ZoomTransitionSourceView new];
18
+ }
19
+
20
+ RCT_EXPORT_VIEW_PROPERTY(identifier, NSString)
21
+ RCT_EXPORT_VIEW_PROPERTY(alignment, NSDictionary)
22
+ RCT_EXPORT_VIEW_PROPERTY(animateAspectRatioChange, BOOL)
23
+
24
+ @end