aix 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/ios/EditMenuDefaultActions.swift +70 -0
  2. package/ios/HybridAix.swift +28 -3
  3. package/ios/HybridAixCellView.swift +0 -1
  4. package/ios/HybridAixComposer.swift +82 -0
  5. package/ios/HybridAixDropzone.swift +104 -0
  6. package/ios/HybridAixInputWrapper.swift +447 -0
  7. package/ios/InputType.swift +40 -0
  8. package/ios/PasteFileManager.swift +92 -0
  9. package/nitro.json +8 -0
  10. package/nitrogen/generated/android/Aix+autolinking.cmake +8 -0
  11. package/nitrogen/generated/android/AixOnLoad.cpp +26 -0
  12. package/nitrogen/generated/android/c++/JAixInputWrapperOnPasteEvent.hpp +70 -0
  13. package/nitrogen/generated/android/c++/JFunc_void_std__vector_AixInputWrapperOnPasteEvent_.hpp +98 -0
  14. package/nitrogen/generated/android/c++/JHybridAixComposerSpec.cpp +9 -0
  15. package/nitrogen/generated/android/c++/JHybridAixComposerSpec.hpp +2 -0
  16. package/nitrogen/generated/android/c++/JHybridAixDropzoneSpec.cpp +72 -0
  17. package/nitrogen/generated/android/c++/JHybridAixDropzoneSpec.hpp +66 -0
  18. package/nitrogen/generated/android/c++/JHybridAixInputWrapperSpec.cpp +144 -0
  19. package/nitrogen/generated/android/c++/JHybridAixInputWrapperSpec.hpp +74 -0
  20. package/nitrogen/generated/android/c++/views/JHybridAixComposerStateUpdater.cpp +4 -0
  21. package/nitrogen/generated/android/c++/views/JHybridAixDropzoneStateUpdater.cpp +56 -0
  22. package/nitrogen/generated/android/c++/views/JHybridAixDropzoneStateUpdater.hpp +49 -0
  23. package/nitrogen/generated/android/c++/views/JHybridAixInputWrapperStateUpdater.cpp +72 -0
  24. package/nitrogen/generated/android/c++/views/JHybridAixInputWrapperStateUpdater.hpp +49 -0
  25. package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/AixInputWrapperOnPasteEvent.kt +47 -0
  26. package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/Func_void_std__vector_AixInputWrapperOnPasteEvent_.kt +80 -0
  27. package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/HybridAixComposerSpec.kt +6 -0
  28. package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/HybridAixDropzoneSpec.kt +67 -0
  29. package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/HybridAixInputWrapperSpec.kt +91 -0
  30. package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/views/HybridAixDropzoneManager.kt +50 -0
  31. package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/views/HybridAixDropzoneStateUpdater.kt +23 -0
  32. package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/views/HybridAixInputWrapperManager.kt +50 -0
  33. package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/views/HybridAixInputWrapperStateUpdater.kt +23 -0
  34. package/nitrogen/generated/ios/Aix-Swift-Cxx-Bridge.cpp +42 -0
  35. package/nitrogen/generated/ios/Aix-Swift-Cxx-Bridge.hpp +112 -0
  36. package/nitrogen/generated/ios/Aix-Swift-Cxx-Umbrella.hpp +14 -0
  37. package/nitrogen/generated/ios/AixAutolinking.mm +16 -0
  38. package/nitrogen/generated/ios/AixAutolinking.swift +30 -0
  39. package/nitrogen/generated/ios/c++/HybridAixComposerSpecSwift.hpp +7 -0
  40. package/nitrogen/generated/ios/c++/HybridAixDropzoneSpecSwift.cpp +11 -0
  41. package/nitrogen/generated/ios/c++/HybridAixDropzoneSpecSwift.hpp +80 -0
  42. package/nitrogen/generated/ios/c++/HybridAixInputWrapperSpecSwift.cpp +11 -0
  43. package/nitrogen/generated/ios/c++/HybridAixInputWrapperSpecSwift.hpp +108 -0
  44. package/nitrogen/generated/ios/c++/views/HybridAixComposerComponent.mm +5 -0
  45. package/nitrogen/generated/ios/c++/views/HybridAixDropzoneComponent.mm +96 -0
  46. package/nitrogen/generated/ios/c++/views/HybridAixInputWrapperComponent.mm +116 -0
  47. package/nitrogen/generated/ios/swift/AixInputWrapperOnPasteEvent.swift +107 -0
  48. package/nitrogen/generated/ios/swift/Func_void_std__vector_AixInputWrapperOnPasteEvent_.swift +47 -0
  49. package/nitrogen/generated/ios/swift/HybridAixComposerSpec.swift +1 -0
  50. package/nitrogen/generated/ios/swift/HybridAixComposerSpec_cxx.swift +24 -0
  51. package/nitrogen/generated/ios/swift/HybridAixDropzoneSpec.swift +56 -0
  52. package/nitrogen/generated/ios/swift/HybridAixDropzoneSpec_cxx.swift +167 -0
  53. package/nitrogen/generated/ios/swift/HybridAixInputWrapperSpec.swift +60 -0
  54. package/nitrogen/generated/ios/swift/HybridAixInputWrapperSpec_cxx.swift +261 -0
  55. package/nitrogen/generated/shared/c++/AixInputWrapperOnPasteEvent.hpp +88 -0
  56. package/nitrogen/generated/shared/c++/HybridAixComposerSpec.cpp +2 -0
  57. package/nitrogen/generated/shared/c++/HybridAixComposerSpec.hpp +2 -0
  58. package/nitrogen/generated/shared/c++/HybridAixDropzoneSpec.cpp +22 -0
  59. package/nitrogen/generated/shared/c++/HybridAixDropzoneSpec.hpp +67 -0
  60. package/nitrogen/generated/shared/c++/HybridAixInputWrapperSpec.cpp +30 -0
  61. package/nitrogen/generated/shared/c++/HybridAixInputWrapperSpec.hpp +76 -0
  62. package/nitrogen/generated/shared/c++/views/HybridAixComposerComponent.cpp +12 -0
  63. package/nitrogen/generated/shared/c++/views/HybridAixComposerComponent.hpp +1 -0
  64. package/nitrogen/generated/shared/c++/views/HybridAixDropzoneComponent.cpp +87 -0
  65. package/nitrogen/generated/shared/c++/views/HybridAixDropzoneComponent.hpp +109 -0
  66. package/nitrogen/generated/shared/c++/views/HybridAixInputWrapperComponent.cpp +135 -0
  67. package/nitrogen/generated/shared/c++/views/HybridAixInputWrapperComponent.hpp +114 -0
  68. package/nitrogen/generated/shared/json/AixComposerConfig.json +1 -0
  69. package/nitrogen/generated/shared/json/AixDropzoneConfig.json +10 -0
  70. package/nitrogen/generated/shared/json/AixInputWrapperConfig.json +14 -0
  71. package/package.json +1 -1
  72. package/src/dropzone.ios.tsx +27 -0
  73. package/src/dropzone.tsx +10 -0
  74. package/src/index.ts +3 -0
  75. package/src/input-wrapper.ios.tsx +30 -0
  76. package/src/input-wrapper.tsx +17 -0
  77. package/src/views/aix.nitro.ts +33 -19
@@ -14,6 +14,8 @@ namespace margelo::nitro::aix { struct AixAdditionalContentInsetsProp; }
14
14
  namespace margelo::nitro::aix { struct AixAdditionalContentInsets; }
15
15
  // Forward declaration of `AixContentInsets` to properly resolve imports.
16
16
  namespace margelo::nitro::aix { struct AixContentInsets; }
17
+ // Forward declaration of `AixInputWrapperOnPasteEvent` to properly resolve imports.
18
+ namespace margelo::nitro::aix { struct AixInputWrapperOnPasteEvent; }
17
19
  // Forward declaration of `AixScrollIndicatorInsetValue` to properly resolve imports.
18
20
  namespace margelo::nitro::aix { struct AixScrollIndicatorInsetValue; }
19
21
  // Forward declaration of `AixScrollIndicatorInsets` to properly resolve imports.
@@ -28,6 +30,10 @@ namespace margelo::nitro::aix { struct AixStickToKeyboard; }
28
30
  namespace margelo::nitro::aix { class HybridAixCellViewSpec; }
29
31
  // Forward declaration of `HybridAixComposerSpec` to properly resolve imports.
30
32
  namespace margelo::nitro::aix { class HybridAixComposerSpec; }
33
+ // Forward declaration of `HybridAixDropzoneSpec` to properly resolve imports.
34
+ namespace margelo::nitro::aix { class HybridAixDropzoneSpec; }
35
+ // Forward declaration of `HybridAixInputWrapperSpec` to properly resolve imports.
36
+ namespace margelo::nitro::aix { class HybridAixInputWrapperSpec; }
31
37
  // Forward declaration of `HybridAixSpec` to properly resolve imports.
32
38
  namespace margelo::nitro::aix { class HybridAixSpec; }
33
39
 
@@ -36,6 +42,10 @@ namespace margelo::nitro::aix { class HybridAixSpec; }
36
42
  namespace Aix { class HybridAixCellViewSpec_cxx; }
37
43
  // Forward declaration of `HybridAixComposerSpec_cxx` to properly resolve imports.
38
44
  namespace Aix { class HybridAixComposerSpec_cxx; }
45
+ // Forward declaration of `HybridAixDropzoneSpec_cxx` to properly resolve imports.
46
+ namespace Aix { class HybridAixDropzoneSpec_cxx; }
47
+ // Forward declaration of `HybridAixInputWrapperSpec_cxx` to properly resolve imports.
48
+ namespace Aix { class HybridAixInputWrapperSpec_cxx; }
39
49
  // Forward declaration of `HybridAixSpec_cxx` to properly resolve imports.
40
50
  namespace Aix { class HybridAixSpec_cxx; }
41
51
 
@@ -43,6 +53,7 @@ namespace Aix { class HybridAixSpec_cxx; }
43
53
  #include "AixAdditionalContentInsets.hpp"
44
54
  #include "AixAdditionalContentInsetsProp.hpp"
45
55
  #include "AixContentInsets.hpp"
56
+ #include "AixInputWrapperOnPasteEvent.hpp"
46
57
  #include "AixScrollIndicatorInsetValue.hpp"
47
58
  #include "AixScrollIndicatorInsets.hpp"
48
59
  #include "AixScrollOnFooterSizeUpdate.hpp"
@@ -50,6 +61,8 @@ namespace Aix { class HybridAixSpec_cxx; }
50
61
  #include "AixStickToKeyboardOffset.hpp"
51
62
  #include "HybridAixCellViewSpec.hpp"
52
63
  #include "HybridAixComposerSpec.hpp"
64
+ #include "HybridAixDropzoneSpec.hpp"
65
+ #include "HybridAixInputWrapperSpec.hpp"
53
66
  #include "HybridAixSpec.hpp"
54
67
  #include <NitroModules/Result.hpp>
55
68
  #include <exception>
@@ -57,6 +70,7 @@ namespace Aix { class HybridAixSpec_cxx; }
57
70
  #include <memory>
58
71
  #include <optional>
59
72
  #include <string>
73
+ #include <vector>
60
74
 
61
75
  /**
62
76
  * Contains specialized versions of C++ templated types so they can be accessed from Swift,
@@ -332,5 +346,103 @@ namespace margelo::nitro::aix::bridge::swift {
332
346
  // pragma MARK: std::weak_ptr<HybridAixComposerSpec>
333
347
  using std__weak_ptr_HybridAixComposerSpec_ = std::weak_ptr<HybridAixComposerSpec>;
334
348
  inline std__weak_ptr_HybridAixComposerSpec_ weakify_std__shared_ptr_HybridAixComposerSpec_(const std::shared_ptr<HybridAixComposerSpec>& strong) noexcept { return strong; }
349
+
350
+ // pragma MARK: std::vector<std::string>
351
+ /**
352
+ * Specialized version of `std::vector<std::string>`.
353
+ */
354
+ using std__vector_std__string_ = std::vector<std::string>;
355
+ inline std::vector<std::string> create_std__vector_std__string_(size_t size) noexcept {
356
+ std::vector<std::string> vector;
357
+ vector.reserve(size);
358
+ return vector;
359
+ }
360
+
361
+ // pragma MARK: std::optional<std::vector<std::string>>
362
+ /**
363
+ * Specialized version of `std::optional<std::vector<std::string>>`.
364
+ */
365
+ using std__optional_std__vector_std__string__ = std::optional<std::vector<std::string>>;
366
+ inline std::optional<std::vector<std::string>> create_std__optional_std__vector_std__string__(const std::vector<std::string>& value) noexcept {
367
+ return std::optional<std::vector<std::string>>(value);
368
+ }
369
+ inline bool has_value_std__optional_std__vector_std__string__(const std::optional<std::vector<std::string>>& optional) noexcept {
370
+ return optional.has_value();
371
+ }
372
+ inline std::vector<std::string> get_std__optional_std__vector_std__string__(const std::optional<std::vector<std::string>>& optional) noexcept {
373
+ return *optional;
374
+ }
375
+
376
+ // pragma MARK: std::vector<AixInputWrapperOnPasteEvent>
377
+ /**
378
+ * Specialized version of `std::vector<AixInputWrapperOnPasteEvent>`.
379
+ */
380
+ using std__vector_AixInputWrapperOnPasteEvent_ = std::vector<AixInputWrapperOnPasteEvent>;
381
+ inline std::vector<AixInputWrapperOnPasteEvent> create_std__vector_AixInputWrapperOnPasteEvent_(size_t size) noexcept {
382
+ std::vector<AixInputWrapperOnPasteEvent> vector;
383
+ vector.reserve(size);
384
+ return vector;
385
+ }
386
+
387
+ // pragma MARK: std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>
388
+ /**
389
+ * Specialized version of `std::function<void(const std::vector<AixInputWrapperOnPasteEvent>&)>`.
390
+ */
391
+ using Func_void_std__vector_AixInputWrapperOnPasteEvent_ = std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>;
392
+ /**
393
+ * Wrapper class for a `std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& / * events * /)>`, this can be used from Swift.
394
+ */
395
+ class Func_void_std__vector_AixInputWrapperOnPasteEvent__Wrapper final {
396
+ public:
397
+ explicit Func_void_std__vector_AixInputWrapperOnPasteEvent__Wrapper(std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>&& func): _function(std::make_unique<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>>(std::move(func))) {}
398
+ inline void call(std::vector<AixInputWrapperOnPasteEvent> events) const noexcept {
399
+ _function->operator()(events);
400
+ }
401
+ private:
402
+ std::unique_ptr<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>> _function;
403
+ } SWIFT_NONCOPYABLE;
404
+ Func_void_std__vector_AixInputWrapperOnPasteEvent_ create_Func_void_std__vector_AixInputWrapperOnPasteEvent_(void* NON_NULL swiftClosureWrapper) noexcept;
405
+ inline Func_void_std__vector_AixInputWrapperOnPasteEvent__Wrapper wrap_Func_void_std__vector_AixInputWrapperOnPasteEvent_(Func_void_std__vector_AixInputWrapperOnPasteEvent_ value) noexcept {
406
+ return Func_void_std__vector_AixInputWrapperOnPasteEvent__Wrapper(std::move(value));
407
+ }
408
+
409
+ // pragma MARK: std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>>
410
+ /**
411
+ * Specialized version of `std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& / * events * /)>>`.
412
+ */
413
+ using std__optional_std__function_void_const_std__vector_AixInputWrapperOnPasteEvent______events______ = std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>>;
414
+ inline std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>> create_std__optional_std__function_void_const_std__vector_AixInputWrapperOnPasteEvent______events______(const std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>& value) noexcept {
415
+ return std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>>(value);
416
+ }
417
+ inline bool has_value_std__optional_std__function_void_const_std__vector_AixInputWrapperOnPasteEvent______events______(const std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>>& optional) noexcept {
418
+ return optional.has_value();
419
+ }
420
+ inline std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)> get_std__optional_std__function_void_const_std__vector_AixInputWrapperOnPasteEvent______events______(const std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>>& optional) noexcept {
421
+ return *optional;
422
+ }
423
+
424
+ // pragma MARK: std::shared_ptr<HybridAixInputWrapperSpec>
425
+ /**
426
+ * Specialized version of `std::shared_ptr<HybridAixInputWrapperSpec>`.
427
+ */
428
+ using std__shared_ptr_HybridAixInputWrapperSpec_ = std::shared_ptr<HybridAixInputWrapperSpec>;
429
+ std::shared_ptr<HybridAixInputWrapperSpec> create_std__shared_ptr_HybridAixInputWrapperSpec_(void* NON_NULL swiftUnsafePointer) noexcept;
430
+ void* NON_NULL get_std__shared_ptr_HybridAixInputWrapperSpec_(std__shared_ptr_HybridAixInputWrapperSpec_ cppType);
431
+
432
+ // pragma MARK: std::weak_ptr<HybridAixInputWrapperSpec>
433
+ using std__weak_ptr_HybridAixInputWrapperSpec_ = std::weak_ptr<HybridAixInputWrapperSpec>;
434
+ inline std__weak_ptr_HybridAixInputWrapperSpec_ weakify_std__shared_ptr_HybridAixInputWrapperSpec_(const std::shared_ptr<HybridAixInputWrapperSpec>& strong) noexcept { return strong; }
435
+
436
+ // pragma MARK: std::shared_ptr<HybridAixDropzoneSpec>
437
+ /**
438
+ * Specialized version of `std::shared_ptr<HybridAixDropzoneSpec>`.
439
+ */
440
+ using std__shared_ptr_HybridAixDropzoneSpec_ = std::shared_ptr<HybridAixDropzoneSpec>;
441
+ std::shared_ptr<HybridAixDropzoneSpec> create_std__shared_ptr_HybridAixDropzoneSpec_(void* NON_NULL swiftUnsafePointer) noexcept;
442
+ void* NON_NULL get_std__shared_ptr_HybridAixDropzoneSpec_(std__shared_ptr_HybridAixDropzoneSpec_ cppType);
443
+
444
+ // pragma MARK: std::weak_ptr<HybridAixDropzoneSpec>
445
+ using std__weak_ptr_HybridAixDropzoneSpec_ = std::weak_ptr<HybridAixDropzoneSpec>;
446
+ inline std__weak_ptr_HybridAixDropzoneSpec_ weakify_std__shared_ptr_HybridAixDropzoneSpec_(const std::shared_ptr<HybridAixDropzoneSpec>& strong) noexcept { return strong; }
335
447
 
336
448
  } // namespace margelo::nitro::aix::bridge::swift
@@ -14,6 +14,8 @@ namespace margelo::nitro::aix { struct AixAdditionalContentInsetsProp; }
14
14
  namespace margelo::nitro::aix { struct AixAdditionalContentInsets; }
15
15
  // Forward declaration of `AixContentInsets` to properly resolve imports.
16
16
  namespace margelo::nitro::aix { struct AixContentInsets; }
17
+ // Forward declaration of `AixInputWrapperOnPasteEvent` to properly resolve imports.
18
+ namespace margelo::nitro::aix { struct AixInputWrapperOnPasteEvent; }
17
19
  // Forward declaration of `AixScrollIndicatorInsetValue` to properly resolve imports.
18
20
  namespace margelo::nitro::aix { struct AixScrollIndicatorInsetValue; }
19
21
  // Forward declaration of `AixScrollIndicatorInsets` to properly resolve imports.
@@ -28,6 +30,10 @@ namespace margelo::nitro::aix { struct AixStickToKeyboard; }
28
30
  namespace margelo::nitro::aix { class HybridAixCellViewSpec; }
29
31
  // Forward declaration of `HybridAixComposerSpec` to properly resolve imports.
30
32
  namespace margelo::nitro::aix { class HybridAixComposerSpec; }
33
+ // Forward declaration of `HybridAixDropzoneSpec` to properly resolve imports.
34
+ namespace margelo::nitro::aix { class HybridAixDropzoneSpec; }
35
+ // Forward declaration of `HybridAixInputWrapperSpec` to properly resolve imports.
36
+ namespace margelo::nitro::aix { class HybridAixInputWrapperSpec; }
31
37
  // Forward declaration of `HybridAixSpec` to properly resolve imports.
32
38
  namespace margelo::nitro::aix { class HybridAixSpec; }
33
39
 
@@ -35,6 +41,7 @@ namespace margelo::nitro::aix { class HybridAixSpec; }
35
41
  #include "AixAdditionalContentInsets.hpp"
36
42
  #include "AixAdditionalContentInsetsProp.hpp"
37
43
  #include "AixContentInsets.hpp"
44
+ #include "AixInputWrapperOnPasteEvent.hpp"
38
45
  #include "AixScrollIndicatorInsetValue.hpp"
39
46
  #include "AixScrollIndicatorInsets.hpp"
40
47
  #include "AixScrollOnFooterSizeUpdate.hpp"
@@ -42,6 +49,8 @@ namespace margelo::nitro::aix { class HybridAixSpec; }
42
49
  #include "AixStickToKeyboardOffset.hpp"
43
50
  #include "HybridAixCellViewSpec.hpp"
44
51
  #include "HybridAixComposerSpec.hpp"
52
+ #include "HybridAixDropzoneSpec.hpp"
53
+ #include "HybridAixInputWrapperSpec.hpp"
45
54
  #include "HybridAixSpec.hpp"
46
55
  #include <NitroModules/Result.hpp>
47
56
  #include <exception>
@@ -49,6 +58,7 @@ namespace margelo::nitro::aix { class HybridAixSpec; }
49
58
  #include <memory>
50
59
  #include <optional>
51
60
  #include <string>
61
+ #include <vector>
52
62
 
53
63
  // C++ helpers for Swift
54
64
  #include "Aix-Swift-Cxx-Bridge.hpp"
@@ -64,6 +74,10 @@ namespace margelo::nitro::aix { class HybridAixSpec; }
64
74
  namespace Aix { class HybridAixCellViewSpec_cxx; }
65
75
  // Forward declaration of `HybridAixComposerSpec_cxx` to properly resolve imports.
66
76
  namespace Aix { class HybridAixComposerSpec_cxx; }
77
+ // Forward declaration of `HybridAixDropzoneSpec_cxx` to properly resolve imports.
78
+ namespace Aix { class HybridAixDropzoneSpec_cxx; }
79
+ // Forward declaration of `HybridAixInputWrapperSpec_cxx` to properly resolve imports.
80
+ namespace Aix { class HybridAixInputWrapperSpec_cxx; }
67
81
  // Forward declaration of `HybridAixSpec_cxx` to properly resolve imports.
68
82
  namespace Aix { class HybridAixSpec_cxx; }
69
83
 
@@ -13,6 +13,8 @@
13
13
  #include "HybridAixSpecSwift.hpp"
14
14
  #include "HybridAixCellViewSpecSwift.hpp"
15
15
  #include "HybridAixComposerSpecSwift.hpp"
16
+ #include "HybridAixInputWrapperSpecSwift.hpp"
17
+ #include "HybridAixDropzoneSpecSwift.hpp"
16
18
 
17
19
  @interface AixAutolinking : NSObject
18
20
  @end
@@ -44,6 +46,20 @@
44
46
  return hybridObject;
45
47
  }
46
48
  );
49
+ HybridObjectRegistry::registerHybridObjectConstructor(
50
+ "AixInputWrapper",
51
+ []() -> std::shared_ptr<HybridObject> {
52
+ std::shared_ptr<HybridAixInputWrapperSpec> hybridObject = Aix::AixAutolinking::createAixInputWrapper();
53
+ return hybridObject;
54
+ }
55
+ );
56
+ HybridObjectRegistry::registerHybridObjectConstructor(
57
+ "AixDropzone",
58
+ []() -> std::shared_ptr<HybridObject> {
59
+ std::shared_ptr<HybridAixDropzoneSpec> hybridObject = Aix::AixAutolinking::createAixDropzone();
60
+ return hybridObject;
61
+ }
62
+ );
47
63
  }
48
64
 
49
65
  @end
@@ -52,4 +52,34 @@ public final class AixAutolinking {
52
52
  return __cxxWrapped.getCxxPart()
53
53
  }()
54
54
  }
55
+
56
+ /**
57
+ * Creates an instance of a Swift class that implements `HybridAixInputWrapperSpec`,
58
+ * and wraps it in a Swift class that can directly interop with C++ (`HybridAixInputWrapperSpec_cxx`)
59
+ *
60
+ * This is generated by Nitrogen and will initialize the class specified
61
+ * in the `"autolinking"` property of `nitro.json` (in this case, `HybridAixInputWrapper`).
62
+ */
63
+ public static func createAixInputWrapper() -> bridge.std__shared_ptr_HybridAixInputWrapperSpec_ {
64
+ let hybridObject = HybridAixInputWrapper()
65
+ return { () -> bridge.std__shared_ptr_HybridAixInputWrapperSpec_ in
66
+ let __cxxWrapped = hybridObject.getCxxWrapper()
67
+ return __cxxWrapped.getCxxPart()
68
+ }()
69
+ }
70
+
71
+ /**
72
+ * Creates an instance of a Swift class that implements `HybridAixDropzoneSpec`,
73
+ * and wraps it in a Swift class that can directly interop with C++ (`HybridAixDropzoneSpec_cxx`)
74
+ *
75
+ * This is generated by Nitrogen and will initialize the class specified
76
+ * in the `"autolinking"` property of `nitro.json` (in this case, `HybridAixDropzone`).
77
+ */
78
+ public static func createAixDropzone() -> bridge.std__shared_ptr_HybridAixDropzoneSpec_ {
79
+ let hybridObject = HybridAixDropzone()
80
+ return { () -> bridge.std__shared_ptr_HybridAixDropzoneSpec_ in
81
+ let __cxxWrapped = hybridObject.getCxxWrapper()
82
+ return __cxxWrapped.getCxxPart()
83
+ }()
84
+ }
55
85
  }
@@ -68,6 +68,13 @@ namespace margelo::nitro::aix {
68
68
  inline void setStickToKeyboard(const std::optional<AixStickToKeyboard>& stickToKeyboard) noexcept override {
69
69
  _swiftPart.setStickToKeyboard(stickToKeyboard);
70
70
  }
71
+ inline std::optional<bool> getFixInput() noexcept override {
72
+ auto __result = _swiftPart.getFixInput();
73
+ return __result;
74
+ }
75
+ inline void setFixInput(std::optional<bool> fixInput) noexcept override {
76
+ _swiftPart.setFixInput(fixInput);
77
+ }
71
78
 
72
79
  public:
73
80
  // Methods
@@ -0,0 +1,11 @@
1
+ ///
2
+ /// HybridAixDropzoneSpecSwift.cpp
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
+ #include "HybridAixDropzoneSpecSwift.hpp"
9
+
10
+ namespace margelo::nitro::aix {
11
+ } // namespace margelo::nitro::aix
@@ -0,0 +1,80 @@
1
+ ///
2
+ /// HybridAixDropzoneSpecSwift.hpp
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
+ #pragma once
9
+
10
+ #include "HybridAixDropzoneSpec.hpp"
11
+
12
+ // Forward declaration of `HybridAixDropzoneSpec_cxx` to properly resolve imports.
13
+ namespace Aix { class HybridAixDropzoneSpec_cxx; }
14
+
15
+ // Forward declaration of `AixInputWrapperOnPasteEvent` to properly resolve imports.
16
+ namespace margelo::nitro::aix { struct AixInputWrapperOnPasteEvent; }
17
+
18
+ #include "AixInputWrapperOnPasteEvent.hpp"
19
+ #include <vector>
20
+ #include <functional>
21
+ #include <optional>
22
+ #include <string>
23
+
24
+ #include "Aix-Swift-Cxx-Umbrella.hpp"
25
+
26
+ namespace margelo::nitro::aix {
27
+
28
+ /**
29
+ * The C++ part of HybridAixDropzoneSpec_cxx.swift.
30
+ *
31
+ * HybridAixDropzoneSpecSwift (C++) accesses HybridAixDropzoneSpec_cxx (Swift), and might
32
+ * contain some additional bridging code for C++ <> Swift interop.
33
+ *
34
+ * Since this obviously introduces an overhead, I hope at some point in
35
+ * the future, HybridAixDropzoneSpec_cxx can directly inherit from the C++ class HybridAixDropzoneSpec
36
+ * to simplify the whole structure and memory management.
37
+ */
38
+ class HybridAixDropzoneSpecSwift: public virtual HybridAixDropzoneSpec {
39
+ public:
40
+ // Constructor from a Swift instance
41
+ explicit HybridAixDropzoneSpecSwift(const Aix::HybridAixDropzoneSpec_cxx& swiftPart):
42
+ HybridObject(HybridAixDropzoneSpec::TAG),
43
+ _swiftPart(swiftPart) { }
44
+
45
+ public:
46
+ // Get the Swift part
47
+ inline Aix::HybridAixDropzoneSpec_cxx& getSwiftPart() noexcept {
48
+ return _swiftPart;
49
+ }
50
+
51
+ public:
52
+ inline size_t getExternalMemorySize() noexcept override {
53
+ return _swiftPart.getMemorySize();
54
+ }
55
+ void dispose() noexcept override {
56
+ _swiftPart.dispose();
57
+ }
58
+ std::string toString() override {
59
+ return _swiftPart.toString();
60
+ }
61
+
62
+ public:
63
+ // Properties
64
+ inline std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>> getOnDrop() noexcept override {
65
+ auto __result = _swiftPart.getOnDrop();
66
+ return __result;
67
+ }
68
+ inline void setOnDrop(const std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>>& onDrop) noexcept override {
69
+ _swiftPart.setOnDrop(onDrop);
70
+ }
71
+
72
+ public:
73
+ // Methods
74
+
75
+
76
+ private:
77
+ Aix::HybridAixDropzoneSpec_cxx _swiftPart;
78
+ };
79
+
80
+ } // namespace margelo::nitro::aix
@@ -0,0 +1,11 @@
1
+ ///
2
+ /// HybridAixInputWrapperSpecSwift.cpp
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
+ #include "HybridAixInputWrapperSpecSwift.hpp"
9
+
10
+ namespace margelo::nitro::aix {
11
+ } // namespace margelo::nitro::aix
@@ -0,0 +1,108 @@
1
+ ///
2
+ /// HybridAixInputWrapperSpecSwift.hpp
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
+ #pragma once
9
+
10
+ #include "HybridAixInputWrapperSpec.hpp"
11
+
12
+ // Forward declaration of `HybridAixInputWrapperSpec_cxx` to properly resolve imports.
13
+ namespace Aix { class HybridAixInputWrapperSpec_cxx; }
14
+
15
+ // Forward declaration of `AixInputWrapperOnPasteEvent` to properly resolve imports.
16
+ namespace margelo::nitro::aix { struct AixInputWrapperOnPasteEvent; }
17
+
18
+ #include <string>
19
+ #include <vector>
20
+ #include <optional>
21
+ #include "AixInputWrapperOnPasteEvent.hpp"
22
+ #include <functional>
23
+
24
+ #include "Aix-Swift-Cxx-Umbrella.hpp"
25
+
26
+ namespace margelo::nitro::aix {
27
+
28
+ /**
29
+ * The C++ part of HybridAixInputWrapperSpec_cxx.swift.
30
+ *
31
+ * HybridAixInputWrapperSpecSwift (C++) accesses HybridAixInputWrapperSpec_cxx (Swift), and might
32
+ * contain some additional bridging code for C++ <> Swift interop.
33
+ *
34
+ * Since this obviously introduces an overhead, I hope at some point in
35
+ * the future, HybridAixInputWrapperSpec_cxx can directly inherit from the C++ class HybridAixInputWrapperSpec
36
+ * to simplify the whole structure and memory management.
37
+ */
38
+ class HybridAixInputWrapperSpecSwift: public virtual HybridAixInputWrapperSpec {
39
+ public:
40
+ // Constructor from a Swift instance
41
+ explicit HybridAixInputWrapperSpecSwift(const Aix::HybridAixInputWrapperSpec_cxx& swiftPart):
42
+ HybridObject(HybridAixInputWrapperSpec::TAG),
43
+ _swiftPart(swiftPart) { }
44
+
45
+ public:
46
+ // Get the Swift part
47
+ inline Aix::HybridAixInputWrapperSpec_cxx& getSwiftPart() noexcept {
48
+ return _swiftPart;
49
+ }
50
+
51
+ public:
52
+ inline size_t getExternalMemorySize() noexcept override {
53
+ return _swiftPart.getMemorySize();
54
+ }
55
+ void dispose() noexcept override {
56
+ _swiftPart.dispose();
57
+ }
58
+ std::string toString() override {
59
+ return _swiftPart.toString();
60
+ }
61
+
62
+ public:
63
+ // Properties
64
+ inline std::optional<std::vector<std::string>> getPasteConfiguration() noexcept override {
65
+ auto __result = _swiftPart.getPasteConfiguration();
66
+ return __result;
67
+ }
68
+ inline void setPasteConfiguration(const std::optional<std::vector<std::string>>& pasteConfiguration) noexcept override {
69
+ _swiftPart.setPasteConfiguration(pasteConfiguration);
70
+ }
71
+ inline std::optional<std::vector<std::string>> getEditMenuDefaultActions() noexcept override {
72
+ auto __result = _swiftPart.getEditMenuDefaultActions();
73
+ return __result;
74
+ }
75
+ inline void setEditMenuDefaultActions(const std::optional<std::vector<std::string>>& editMenuDefaultActions) noexcept override {
76
+ _swiftPart.setEditMenuDefaultActions(editMenuDefaultActions);
77
+ }
78
+ inline std::optional<double> getMaxLines() noexcept override {
79
+ auto __result = _swiftPart.getMaxLines();
80
+ return __result;
81
+ }
82
+ inline void setMaxLines(std::optional<double> maxLines) noexcept override {
83
+ _swiftPart.setMaxLines(maxLines);
84
+ }
85
+ inline std::optional<double> getMaxChars() noexcept override {
86
+ auto __result = _swiftPart.getMaxChars();
87
+ return __result;
88
+ }
89
+ inline void setMaxChars(std::optional<double> maxChars) noexcept override {
90
+ _swiftPart.setMaxChars(maxChars);
91
+ }
92
+ inline std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>> getOnPaste() noexcept override {
93
+ auto __result = _swiftPart.getOnPaste();
94
+ return __result;
95
+ }
96
+ inline void setOnPaste(const std::optional<std::function<void(const std::vector<AixInputWrapperOnPasteEvent>& /* events */)>>& onPaste) noexcept override {
97
+ _swiftPart.setOnPaste(onPaste);
98
+ }
99
+
100
+ public:
101
+ // Methods
102
+
103
+
104
+ private:
105
+ Aix::HybridAixInputWrapperSpec_cxx _swiftPart;
106
+ };
107
+
108
+ } // namespace margelo::nitro::aix
@@ -76,6 +76,11 @@ using namespace margelo::nitro::aix::views;
76
76
  swiftPart.setStickToKeyboard(newViewProps.stickToKeyboard.value);
77
77
  newViewProps.stickToKeyboard.isDirty = false;
78
78
  }
79
+ // fixInput: optional
80
+ if (newViewProps.fixInput.isDirty) {
81
+ swiftPart.setFixInput(newViewProps.fixInput.value);
82
+ newViewProps.fixInput.isDirty = false;
83
+ }
79
84
 
80
85
  swiftPart.afterUpdate();
81
86
 
@@ -0,0 +1,96 @@
1
+ ///
2
+ /// HybridAixDropzoneComponent.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 "HybridAixDropzoneComponent.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 "HybridAixDropzoneSpecSwift.hpp"
18
+ #import "Aix-Swift-Cxx-Umbrella.hpp"
19
+
20
+ using namespace facebook;
21
+ using namespace margelo::nitro::aix;
22
+ using namespace margelo::nitro::aix::views;
23
+
24
+ /**
25
+ * Represents the React Native View holder for the Nitro "AixDropzone" HybridView.
26
+ */
27
+ @interface HybridAixDropzoneComponent: RCTViewComponentView
28
+ @end
29
+
30
+ @implementation HybridAixDropzoneComponent {
31
+ std::shared_ptr<HybridAixDropzoneSpecSwift> _hybridView;
32
+ }
33
+
34
+ + (void) load {
35
+ [super load];
36
+ [RCTComponentViewFactory.currentComponentViewFactory registerComponentViewClass:[HybridAixDropzoneComponent class]];
37
+ }
38
+
39
+ + (react::ComponentDescriptorProvider) componentDescriptorProvider {
40
+ return react::concreteComponentDescriptorProvider<HybridAixDropzoneComponentDescriptor>();
41
+ }
42
+
43
+ - (instancetype) init {
44
+ if (self = [super init]) {
45
+ std::shared_ptr<HybridAixDropzoneSpec> hybridView = Aix::AixAutolinking::createAixDropzone();
46
+ _hybridView = std::dynamic_pointer_cast<HybridAixDropzoneSpecSwift>(hybridView);
47
+ [self updateView];
48
+ }
49
+ return self;
50
+ }
51
+
52
+ - (void) updateView {
53
+ // 1. Get Swift part
54
+ Aix::HybridAixDropzoneSpec_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<HybridAixDropzoneProps const>(props);
68
+ auto& newViewProps = const_cast<HybridAixDropzoneProps&>(newViewPropsConst);
69
+ Aix::HybridAixDropzoneSpec_cxx& swiftPart = _hybridView->getSwiftPart();
70
+
71
+ // 2. Update each prop individually
72
+ swiftPart.beforeUpdate();
73
+
74
+ // onDrop: optional
75
+ if (newViewProps.onDrop.isDirty) {
76
+ swiftPart.setOnDrop(newViewProps.onDrop.value);
77
+ newViewProps.onDrop.isDirty = false;
78
+ }
79
+
80
+ swiftPart.afterUpdate();
81
+
82
+ // 3. Update hybridRef if it changed
83
+ if (newViewProps.hybridRef.isDirty) {
84
+ // hybridRef changed - call it with new this
85
+ const auto& maybeFunc = newViewProps.hybridRef.value;
86
+ if (maybeFunc.has_value()) {
87
+ maybeFunc.value()(_hybridView);
88
+ }
89
+ newViewProps.hybridRef.isDirty = false;
90
+ }
91
+
92
+ // 4. Continue in base class
93
+ [super updateProps:props oldProps:oldProps];
94
+ }
95
+
96
+ @end