aix 0.1.0 → 0.3.0
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.
- package/README.md +32 -1
- package/ios/HybridAix.swift +96 -14
- package/ios/HybridAixComposer.swift +63 -24
- package/lib/commonjs/aix.js +16 -1
- package/lib/commonjs/aix.js.map +1 -1
- package/lib/commonjs/hooks/useContentInsetHandler.js +30 -0
- package/lib/commonjs/hooks/useContentInsetHandler.js.map +1 -0
- package/lib/commonjs/index.js +9 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/aix.js +16 -1
- package/lib/module/aix.js.map +1 -1
- package/lib/module/hooks/useContentInsetHandler.js +26 -0
- package/lib/module/hooks/useContentInsetHandler.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/aix.d.ts +239 -11
- package/lib/typescript/src/aix.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useContentInsetHandler.d.ts +21 -0
- package/lib/typescript/src/hooks/useContentInsetHandler.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/views/aix.nitro.d.ts +44 -0
- package/lib/typescript/src/views/aix.nitro.d.ts.map +1 -1
- package/nitrogen/generated/android/AixOnLoad.cpp +4 -0
- package/nitrogen/generated/android/c++/JAixContentInsets.hpp +69 -0
- package/nitrogen/generated/android/c++/JAixStickToKeyboard.hpp +63 -0
- package/nitrogen/generated/android/c++/JAixStickToKeyboardOffset.hpp +61 -0
- package/nitrogen/generated/android/c++/JFunc_void_AixContentInsets.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_bool.hpp +75 -0
- package/nitrogen/generated/android/c++/JHybridAixComposerSpec.cpp +18 -3
- package/nitrogen/generated/android/c++/JHybridAixComposerSpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridAixSpec.cpp +51 -0
- package/nitrogen/generated/android/c++/JHybridAixSpec.hpp +6 -0
- package/nitrogen/generated/android/c++/views/JHybridAixComposerStateUpdater.cpp +4 -1
- package/nitrogen/generated/android/c++/views/JHybridAixStateUpdater.cpp +12 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/AixContentInsets.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/AixStickToKeyboard.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/AixStickToKeyboardOffset.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/Func_void_AixContentInsets.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/Func_void_bool.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/HybridAixComposerSpec.kt +5 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/aix/HybridAixSpec.kt +34 -0
- package/nitrogen/generated/ios/Aix-Swift-Cxx-Bridge.cpp +16 -0
- package/nitrogen/generated/ios/Aix-Swift-Cxx-Bridge.hpp +114 -0
- package/nitrogen/generated/ios/Aix-Swift-Cxx-Umbrella.hpp +10 -0
- package/nitrogen/generated/ios/c++/HybridAixComposerSpecSwift.hpp +14 -3
- package/nitrogen/generated/ios/c++/HybridAixSpecSwift.hpp +25 -0
- package/nitrogen/generated/ios/c++/views/HybridAixComponent.mm +15 -0
- package/nitrogen/generated/ios/c++/views/HybridAixComposerComponent.mm +5 -1
- package/nitrogen/generated/ios/swift/AixContentInsets.swift +117 -0
- package/nitrogen/generated/ios/swift/AixStickToKeyboard.swift +59 -0
- package/nitrogen/generated/ios/swift/AixStickToKeyboardOffset.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_AixContentInsets.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridAixComposerSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridAixComposerSpec_cxx.swift +16 -1
- package/nitrogen/generated/ios/swift/HybridAixSpec.swift +3 -0
- package/nitrogen/generated/ios/swift/HybridAixSpec_cxx.swift +88 -0
- package/nitrogen/generated/shared/c++/AixContentInsets.hpp +87 -0
- package/nitrogen/generated/shared/c++/AixStickToKeyboard.hpp +81 -0
- package/nitrogen/generated/shared/c++/AixStickToKeyboardOffset.hpp +79 -0
- package/nitrogen/generated/shared/c++/HybridAixComposerSpec.cpp +2 -1
- package/nitrogen/generated/shared/c++/HybridAixComposerSpec.hpp +6 -3
- package/nitrogen/generated/shared/c++/HybridAixSpec.cpp +6 -0
- package/nitrogen/generated/shared/c++/HybridAixSpec.hpp +10 -0
- package/nitrogen/generated/shared/c++/views/HybridAixComponent.cpp +36 -0
- package/nitrogen/generated/shared/c++/views/HybridAixComponent.hpp +5 -1
- package/nitrogen/generated/shared/c++/views/HybridAixComposerComponent.cpp +12 -0
- package/nitrogen/generated/shared/c++/views/HybridAixComposerComponent.hpp +3 -1
- package/nitrogen/generated/shared/json/AixComposerConfig.json +1 -0
- package/nitrogen/generated/shared/json/AixConfig.json +3 -0
- package/package.json +9 -7
- package/src/aix.tsx +33 -11
- package/src/hooks/useContentInsetHandler.ts +28 -0
- package/src/index.ts +2 -0
- package/src/views/aix.nitro.ts +28 -1
|
@@ -1,14 +1,242 @@
|
|
|
1
1
|
import { type HybridRef } from 'react-native-nitro-modules';
|
|
2
|
-
import type { AixProps, AixMethods } from './views/aix.nitro';
|
|
2
|
+
import type { AixProps, AixMethods, AixContentInsets } from './views/aix.nitro';
|
|
3
3
|
export type AixRef = HybridRef<AixProps, AixMethods>;
|
|
4
|
-
export declare const Aix: import("react").ForwardRefExoticComponent<{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
export declare const Aix: import("react").ForwardRefExoticComponent<Omit<{
|
|
5
|
+
shouldStartAtEnd: boolean | import("react-native-reanimated").SharedValue<boolean>;
|
|
6
|
+
scrollOnFooterSizeUpdate?: import("./views/aix.nitro").AixScrollOnFooterSizeUpdate | import("react-native-reanimated").SharedValue<import("./views/aix.nitro").AixScrollOnFooterSizeUpdate | undefined> | undefined;
|
|
7
|
+
scrollEndReachedThreshold?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
8
|
+
additionalContentInsets?: import("./views/aix.nitro").AixAdditionalContentInsetsProp | import("react-native-reanimated").SharedValue<import("./views/aix.nitro").AixAdditionalContentInsetsProp | undefined> | undefined;
|
|
9
|
+
additionalScrollIndicatorInsets?: import("./views/aix.nitro").AixScrollIndicatorInsets | import("react-native-reanimated").SharedValue<import("./views/aix.nitro").AixScrollIndicatorInsets | undefined> | undefined;
|
|
10
|
+
mainScrollViewID?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
11
|
+
penultimateCellIndex?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
12
|
+
shouldApplyContentInsets?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
13
|
+
onWillApplyContentInsets?: import("react-native-nitro-modules").NitroViewWrappedCallback<((insets: AixContentInsets) => void) | undefined> | import("react-native-reanimated").SharedValue<import("react-native-nitro-modules").NitroViewWrappedCallback<((insets: AixContentInsets) => void) | undefined> | undefined> | undefined;
|
|
14
|
+
onScrolledNearEndChange?: import("react-native-nitro-modules").NitroViewWrappedCallback<((isNearEnd: boolean) => void) | undefined> | import("react-native-reanimated").SharedValue<import("react-native-nitro-modules").NitroViewWrappedCallback<((isNearEnd: boolean) => void) | undefined> | undefined> | undefined;
|
|
15
|
+
hybridRef?: import("react-native-nitro-modules").NitroViewWrappedCallback<((ref: import("react-native-nitro-modules").HybridView<AixProps, AixMethods>) => void) | undefined> | import("react-native-reanimated").SharedValue<import("react-native-nitro-modules").NitroViewWrappedCallback<((ref: import("react-native-nitro-modules").HybridView<AixProps, AixMethods>) => void) | undefined> | undefined> | undefined;
|
|
16
|
+
children?: import("react").ReactNode | import("react-native-reanimated").SharedValue<import("react").ReactNode>;
|
|
17
|
+
hitSlop?: number | import("react-native").Insets | import("react-native-reanimated").SharedValue<number | import("react-native").Insets | null | undefined> | null | undefined;
|
|
18
|
+
id?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
19
|
+
needsOffscreenAlphaCompositing?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
20
|
+
onLayout?: ((event: import("react-native").LayoutChangeEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").LayoutChangeEvent) => void) | undefined> | undefined;
|
|
21
|
+
pointerEvents?: "box-none" | "none" | "box-only" | "auto" | import("react-native-reanimated").SharedValue<"box-none" | "none" | "box-only" | "auto" | undefined> | undefined;
|
|
22
|
+
removeClippedSubviews?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
23
|
+
testID?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
24
|
+
nativeID?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
25
|
+
collapsable?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
26
|
+
collapsableChildren?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
27
|
+
onBlur?: ((e: import("react-native").BlurEvent) => void) | import("react-native-reanimated").SharedValue<((e: import("react-native").BlurEvent) => void) | null | undefined> | null | undefined;
|
|
28
|
+
onFocus?: ((e: import("react-native").FocusEvent) => void) | import("react-native-reanimated").SharedValue<((e: import("react-native").FocusEvent) => void) | null | undefined> | null | undefined;
|
|
29
|
+
renderToHardwareTextureAndroid?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
30
|
+
focusable?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
31
|
+
tabIndex?: 0 | -1 | import("react-native-reanimated").SharedValue<0 | -1 | undefined> | undefined;
|
|
32
|
+
shouldRasterizeIOS?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
33
|
+
isTVSelectable?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
34
|
+
hasTVPreferredFocus?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
35
|
+
tvParallaxShiftDistanceX?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
36
|
+
tvParallaxShiftDistanceY?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
37
|
+
tvParallaxTiltAngle?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
38
|
+
tvParallaxMagnification?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
39
|
+
onStartShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
40
|
+
onMoveShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
41
|
+
onResponderEnd?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
42
|
+
onResponderGrant?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
43
|
+
onResponderReject?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
44
|
+
onResponderMove?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
45
|
+
onResponderRelease?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
46
|
+
onResponderStart?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
47
|
+
onResponderTerminationRequest?: ((event: import("react-native").GestureResponderEvent) => boolean) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
48
|
+
onResponderTerminate?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
49
|
+
onStartShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
50
|
+
onMoveShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
51
|
+
onTouchStart?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
52
|
+
onTouchMove?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
53
|
+
onTouchEnd?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
54
|
+
onTouchCancel?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
55
|
+
onTouchEndCapture?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
56
|
+
onPointerEnter?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
57
|
+
onPointerEnterCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
58
|
+
onPointerLeave?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
59
|
+
onPointerLeaveCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
60
|
+
onPointerMove?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
61
|
+
onPointerMoveCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
62
|
+
onPointerCancel?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
63
|
+
onPointerCancelCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
64
|
+
onPointerDown?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
65
|
+
onPointerDownCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
66
|
+
onPointerUp?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
67
|
+
onPointerUpCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
68
|
+
accessible?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
69
|
+
accessibilityActions?: readonly Readonly<{
|
|
70
|
+
name: import("react-native").AccessibilityActionName | string;
|
|
71
|
+
label?: string | undefined;
|
|
72
|
+
}>[] | import("react-native-reanimated").SharedValue<readonly Readonly<{
|
|
73
|
+
name: import("react-native").AccessibilityActionName | string;
|
|
74
|
+
label?: string | undefined;
|
|
75
|
+
}>[] | undefined> | undefined;
|
|
76
|
+
accessibilityLabel?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
77
|
+
'aria-label'?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
78
|
+
accessibilityRole?: import("react-native").AccessibilityRole | import("react-native-reanimated").SharedValue<import("react-native").AccessibilityRole | undefined> | undefined;
|
|
79
|
+
accessibilityState?: import("react-native").AccessibilityState | import("react-native-reanimated").SharedValue<import("react-native").AccessibilityState | undefined> | undefined;
|
|
80
|
+
'aria-busy'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
81
|
+
'aria-checked'?: boolean | "mixed" | import("react-native-reanimated").SharedValue<boolean | "mixed" | undefined> | undefined;
|
|
82
|
+
'aria-disabled'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
83
|
+
'aria-expanded'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
84
|
+
'aria-selected'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
85
|
+
accessibilityHint?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
86
|
+
accessibilityValue?: import("react-native").AccessibilityValue | import("react-native-reanimated").SharedValue<import("react-native").AccessibilityValue | undefined> | undefined;
|
|
87
|
+
'aria-valuemax'?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
88
|
+
'aria-valuemin'?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
89
|
+
'aria-valuenow'?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
90
|
+
'aria-valuetext'?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
91
|
+
onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").AccessibilityActionEvent) => void) | undefined> | undefined;
|
|
92
|
+
importantForAccessibility?: "auto" | "yes" | "no" | "no-hide-descendants" | import("react-native-reanimated").SharedValue<"auto" | "yes" | "no" | "no-hide-descendants" | undefined> | undefined;
|
|
93
|
+
'aria-hidden'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
94
|
+
'aria-modal'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
95
|
+
role?: import("react-native").Role | import("react-native-reanimated").SharedValue<import("react-native").Role | undefined> | undefined;
|
|
96
|
+
accessibilityLabelledBy?: string | string[] | import("react-native-reanimated").SharedValue<string | string[] | undefined> | undefined;
|
|
97
|
+
'aria-labelledby'?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
98
|
+
accessibilityLiveRegion?: "none" | "polite" | "assertive" | import("react-native-reanimated").SharedValue<"none" | "polite" | "assertive" | undefined> | undefined;
|
|
99
|
+
'aria-live'?: "polite" | "assertive" | "off" | import("react-native-reanimated").SharedValue<"polite" | "assertive" | "off" | undefined> | undefined;
|
|
100
|
+
screenReaderFocusable?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
101
|
+
accessibilityElementsHidden?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
102
|
+
accessibilityViewIsModal?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
103
|
+
onAccessibilityEscape?: (() => void) | import("react-native-reanimated").SharedValue<(() => void) | undefined> | undefined;
|
|
104
|
+
onAccessibilityTap?: (() => void) | import("react-native-reanimated").SharedValue<(() => void) | undefined> | undefined;
|
|
105
|
+
onMagicTap?: (() => void) | import("react-native-reanimated").SharedValue<(() => void) | undefined> | undefined;
|
|
106
|
+
accessibilityIgnoresInvertColors?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
107
|
+
accessibilityLanguage?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
108
|
+
accessibilityShowsLargeContentViewer?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
109
|
+
accessibilityLargeContentTitle?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
110
|
+
accessibilityRespondsToUserInteraction?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
111
|
+
} & {
|
|
112
|
+
style?: import("react-native").StyleProp<import("react-native-reanimated").AnimatedStyle<import("react-native").StyleProp<import("react-native").ViewStyle>>>;
|
|
113
|
+
} & {
|
|
114
|
+
layout?: import("react-native-reanimated").BaseAnimationBuilder | import("react-native-reanimated").LayoutAnimationFunction | typeof import("react-native-reanimated").BaseAnimationBuilder;
|
|
115
|
+
entering?: import("react-native-reanimated").EntryOrExitLayoutType;
|
|
116
|
+
exiting?: import("react-native-reanimated").EntryOrExitLayoutType;
|
|
117
|
+
} & {
|
|
118
|
+
sharedTransitionTag?: string;
|
|
119
|
+
sharedTransitionStyle?: import("react-native-reanimated").SharedTransition;
|
|
120
|
+
} & {
|
|
121
|
+
animatedProps?: Partial<{
|
|
122
|
+
shouldStartAtEnd: boolean | import("react-native-reanimated").SharedValue<boolean>;
|
|
123
|
+
scrollOnFooterSizeUpdate?: import("./views/aix.nitro").AixScrollOnFooterSizeUpdate | import("react-native-reanimated").SharedValue<import("./views/aix.nitro").AixScrollOnFooterSizeUpdate | undefined> | undefined;
|
|
124
|
+
scrollEndReachedThreshold?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
125
|
+
additionalContentInsets?: import("./views/aix.nitro").AixAdditionalContentInsetsProp | import("react-native-reanimated").SharedValue<import("./views/aix.nitro").AixAdditionalContentInsetsProp | undefined> | undefined;
|
|
126
|
+
additionalScrollIndicatorInsets?: import("./views/aix.nitro").AixScrollIndicatorInsets | import("react-native-reanimated").SharedValue<import("./views/aix.nitro").AixScrollIndicatorInsets | undefined> | undefined;
|
|
127
|
+
mainScrollViewID?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
128
|
+
penultimateCellIndex?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
129
|
+
shouldApplyContentInsets?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
130
|
+
onWillApplyContentInsets?: import("react-native-nitro-modules").NitroViewWrappedCallback<((insets: AixContentInsets) => void) | undefined> | import("react-native-reanimated").SharedValue<import("react-native-nitro-modules").NitroViewWrappedCallback<((insets: AixContentInsets) => void) | undefined> | undefined> | undefined;
|
|
131
|
+
onScrolledNearEndChange?: import("react-native-nitro-modules").NitroViewWrappedCallback<((isNearEnd: boolean) => void) | undefined> | import("react-native-reanimated").SharedValue<import("react-native-nitro-modules").NitroViewWrappedCallback<((isNearEnd: boolean) => void) | undefined> | undefined> | undefined;
|
|
132
|
+
hybridRef?: import("react-native-nitro-modules").NitroViewWrappedCallback<((ref: import("react-native-nitro-modules").HybridView<AixProps, AixMethods>) => void) | undefined> | import("react-native-reanimated").SharedValue<import("react-native-nitro-modules").NitroViewWrappedCallback<((ref: import("react-native-nitro-modules").HybridView<AixProps, AixMethods>) => void) | undefined> | undefined> | undefined;
|
|
133
|
+
children?: import("react").ReactNode | import("react-native-reanimated").SharedValue<import("react").ReactNode>;
|
|
134
|
+
hitSlop?: number | import("react-native").Insets | import("react-native-reanimated").SharedValue<number | import("react-native").Insets | null | undefined> | null | undefined;
|
|
135
|
+
id?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
136
|
+
needsOffscreenAlphaCompositing?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
137
|
+
onLayout?: ((event: import("react-native").LayoutChangeEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").LayoutChangeEvent) => void) | undefined> | undefined;
|
|
138
|
+
pointerEvents?: "box-none" | "none" | "box-only" | "auto" | import("react-native-reanimated").SharedValue<"box-none" | "none" | "box-only" | "auto" | undefined> | undefined;
|
|
139
|
+
removeClippedSubviews?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
140
|
+
testID?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
141
|
+
nativeID?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
142
|
+
collapsable?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
143
|
+
collapsableChildren?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
144
|
+
onBlur?: ((e: import("react-native").BlurEvent) => void) | import("react-native-reanimated").SharedValue<((e: import("react-native").BlurEvent) => void) | null | undefined> | null | undefined;
|
|
145
|
+
onFocus?: ((e: import("react-native").FocusEvent) => void) | import("react-native-reanimated").SharedValue<((e: import("react-native").FocusEvent) => void) | null | undefined> | null | undefined;
|
|
146
|
+
renderToHardwareTextureAndroid?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
147
|
+
focusable?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
148
|
+
tabIndex?: 0 | -1 | import("react-native-reanimated").SharedValue<0 | -1 | undefined> | undefined;
|
|
149
|
+
shouldRasterizeIOS?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
150
|
+
isTVSelectable?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
151
|
+
hasTVPreferredFocus?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
152
|
+
tvParallaxShiftDistanceX?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
153
|
+
tvParallaxShiftDistanceY?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
154
|
+
tvParallaxTiltAngle?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
155
|
+
tvParallaxMagnification?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
156
|
+
onStartShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
157
|
+
onMoveShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
158
|
+
onResponderEnd?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
159
|
+
onResponderGrant?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
160
|
+
onResponderReject?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
161
|
+
onResponderMove?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
162
|
+
onResponderRelease?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
163
|
+
onResponderStart?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
164
|
+
onResponderTerminationRequest?: ((event: import("react-native").GestureResponderEvent) => boolean) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
165
|
+
onResponderTerminate?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
166
|
+
onStartShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
167
|
+
onMoveShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
168
|
+
onTouchStart?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
169
|
+
onTouchMove?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
170
|
+
onTouchEnd?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
171
|
+
onTouchCancel?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
172
|
+
onTouchEndCapture?: ((event: import("react-native").GestureResponderEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
173
|
+
onPointerEnter?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
174
|
+
onPointerEnterCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
175
|
+
onPointerLeave?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
176
|
+
onPointerLeaveCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
177
|
+
onPointerMove?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
178
|
+
onPointerMoveCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
179
|
+
onPointerCancel?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
180
|
+
onPointerCancelCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
181
|
+
onPointerDown?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
182
|
+
onPointerDownCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
183
|
+
onPointerUp?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
184
|
+
onPointerUpCapture?: ((event: import("react-native").PointerEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
185
|
+
accessible?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
186
|
+
accessibilityActions?: readonly Readonly<{
|
|
187
|
+
name: import("react-native").AccessibilityActionName | string;
|
|
188
|
+
label?: string | undefined;
|
|
189
|
+
}>[] | import("react-native-reanimated").SharedValue<readonly Readonly<{
|
|
190
|
+
name: import("react-native").AccessibilityActionName | string;
|
|
191
|
+
label?: string | undefined;
|
|
192
|
+
}>[] | undefined> | undefined;
|
|
193
|
+
accessibilityLabel?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
194
|
+
'aria-label'?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
195
|
+
accessibilityRole?: import("react-native").AccessibilityRole | import("react-native-reanimated").SharedValue<import("react-native").AccessibilityRole | undefined> | undefined;
|
|
196
|
+
accessibilityState?: import("react-native").AccessibilityState | import("react-native-reanimated").SharedValue<import("react-native").AccessibilityState | undefined> | undefined;
|
|
197
|
+
'aria-busy'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
198
|
+
'aria-checked'?: boolean | "mixed" | import("react-native-reanimated").SharedValue<boolean | "mixed" | undefined> | undefined;
|
|
199
|
+
'aria-disabled'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
200
|
+
'aria-expanded'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
201
|
+
'aria-selected'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
202
|
+
accessibilityHint?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
203
|
+
accessibilityValue?: import("react-native").AccessibilityValue | import("react-native-reanimated").SharedValue<import("react-native").AccessibilityValue | undefined> | undefined;
|
|
204
|
+
'aria-valuemax'?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
205
|
+
'aria-valuemin'?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
206
|
+
'aria-valuenow'?: number | import("react-native-reanimated").SharedValue<number | undefined> | undefined;
|
|
207
|
+
'aria-valuetext'?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
208
|
+
onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => void) | import("react-native-reanimated").SharedValue<((event: import("react-native").AccessibilityActionEvent) => void) | undefined> | undefined;
|
|
209
|
+
importantForAccessibility?: "auto" | "yes" | "no" | "no-hide-descendants" | import("react-native-reanimated").SharedValue<"auto" | "yes" | "no" | "no-hide-descendants" | undefined> | undefined;
|
|
210
|
+
'aria-hidden'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
211
|
+
'aria-modal'?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
212
|
+
role?: import("react-native").Role | import("react-native-reanimated").SharedValue<import("react-native").Role | undefined> | undefined;
|
|
213
|
+
accessibilityLabelledBy?: string | string[] | import("react-native-reanimated").SharedValue<string | string[] | undefined> | undefined;
|
|
214
|
+
'aria-labelledby'?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
215
|
+
accessibilityLiveRegion?: "none" | "polite" | "assertive" | import("react-native-reanimated").SharedValue<"none" | "polite" | "assertive" | undefined> | undefined;
|
|
216
|
+
'aria-live'?: "polite" | "assertive" | "off" | import("react-native-reanimated").SharedValue<"polite" | "assertive" | "off" | undefined> | undefined;
|
|
217
|
+
screenReaderFocusable?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
218
|
+
accessibilityElementsHidden?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
219
|
+
accessibilityViewIsModal?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
220
|
+
onAccessibilityEscape?: (() => void) | import("react-native-reanimated").SharedValue<(() => void) | undefined> | undefined;
|
|
221
|
+
onAccessibilityTap?: (() => void) | import("react-native-reanimated").SharedValue<(() => void) | undefined> | undefined;
|
|
222
|
+
onMagicTap?: (() => void) | import("react-native-reanimated").SharedValue<(() => void) | undefined> | undefined;
|
|
223
|
+
accessibilityIgnoresInvertColors?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
224
|
+
accessibilityLanguage?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
225
|
+
accessibilityShowsLargeContentViewer?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
226
|
+
accessibilityLargeContentTitle?: string | import("react-native-reanimated").SharedValue<string | undefined> | undefined;
|
|
227
|
+
accessibilityRespondsToUserInteraction?: boolean | import("react-native-reanimated").SharedValue<boolean | undefined> | undefined;
|
|
228
|
+
} & {
|
|
229
|
+
style?: import("react-native").StyleProp<import("react-native-reanimated").AnimatedStyle<import("react-native").StyleProp<import("react-native").ViewStyle>>>;
|
|
230
|
+
} & {
|
|
231
|
+
layout?: import("react-native-reanimated").BaseAnimationBuilder | import("react-native-reanimated").LayoutAnimationFunction | typeof import("react-native-reanimated").BaseAnimationBuilder;
|
|
232
|
+
entering?: import("react-native-reanimated").EntryOrExitLayoutType;
|
|
233
|
+
exiting?: import("react-native-reanimated").EntryOrExitLayoutType;
|
|
234
|
+
} & {
|
|
235
|
+
sharedTransitionTag?: string;
|
|
236
|
+
sharedTransitionStyle?: import("react-native-reanimated").SharedTransition;
|
|
237
|
+
}> | undefined;
|
|
238
|
+
}, "onWillApplyContentInsets" | "onScrolledNearEndChange" | "hybridRef"> & {
|
|
239
|
+
onWillApplyContentInsets?: (insets: AixContentInsets) => void;
|
|
240
|
+
onScrolledNearEndChange?: (isNearEnd: boolean) => void;
|
|
241
|
+
} & import("react").RefAttributes<AixRef>>;
|
|
14
242
|
//# sourceMappingURL=aix.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aix.d.ts","sourceRoot":"","sources":["../../../src/aix.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"aix.d.ts","sourceRoot":"","sources":["../../../src/aix.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,4BAA4B,CAAA;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAI/E,MAAM,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;AAgBpD,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAJa,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI;8BACnC,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI;0CAyCvD,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AixContentInsets } from '../views/aix.nitro';
|
|
2
|
+
/**
|
|
3
|
+
* Hook that creates a stable callback handler for content inset updates.
|
|
4
|
+
* Use this with `onWillApplyContentInsets` prop to receive inset updates.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* const bottomInset = useSharedValue<number | null>(null)
|
|
9
|
+
*
|
|
10
|
+
* const contentInsetHandler = useContentInsetHandler((insets) => {
|
|
11
|
+
* bottomInset.value = insets.bottom ?? null
|
|
12
|
+
* })
|
|
13
|
+
*
|
|
14
|
+
* <Aix
|
|
15
|
+
* shouldApplyContentInsets={false}
|
|
16
|
+
* onWillApplyContentInsets={contentInsetHandler}
|
|
17
|
+
* />
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function useContentInsetHandler(handler: (insets: AixContentInsets) => void, dependencies?: unknown[]): (insets: AixContentInsets) => void;
|
|
21
|
+
//# sourceMappingURL=useContentInsetHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useContentInsetHandler.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useContentInsetHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,EAC3C,YAAY,GAAE,OAAO,EAAO,YADV,gBAAgB,KAAK,IAAI,CAK5C"}
|
|
@@ -4,6 +4,8 @@ import type { AixRef } from './aix';
|
|
|
4
4
|
export * from './fade-in';
|
|
5
5
|
export { Aix, type AixRef } from './aix';
|
|
6
6
|
export { AixFooter } from './footer';
|
|
7
|
+
export { useContentInsetHandler } from './hooks/useContentInsetHandler';
|
|
8
|
+
export type { AixContentInsets } from './views/aix.nitro';
|
|
7
9
|
export declare const AixCell: import("react-native-nitro-modules").ReactNativeView<AixCellViewProps, {}>;
|
|
8
10
|
export type AixCellViewRef = HybridRef<AixCellViewProps, {}>;
|
|
9
11
|
export declare function useAixRef(): import("react").RefObject<AixRef | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACnC,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,GAAG,EAAE,KAAK,MAAM,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAE7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACnC,cAAc,WAAW,CAAA;AAEzB,OAAO,EAAE,GAAG,EAAE,KAAK,MAAM,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,eAAO,MAAM,OAAO,4EAGnB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;AAE5D,wBAAgB,SAAS,6CAExB"}
|
|
@@ -16,12 +16,40 @@ export interface AixScrollIndicatorInsets {
|
|
|
16
16
|
bottom?: AixScrollIndicatorInsetValue;
|
|
17
17
|
}
|
|
18
18
|
export interface AixScrollOnFooterSizeUpdate {
|
|
19
|
+
/**
|
|
20
|
+
* Whether to scroll on footer size update.
|
|
21
|
+
*
|
|
22
|
+
* Default: true
|
|
23
|
+
*/
|
|
19
24
|
enabled: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The number of pixels from the bottom of the scroll view to the end of the content that is considered "scrolled near the end".
|
|
27
|
+
*
|
|
28
|
+
* Default: 100
|
|
29
|
+
*/
|
|
20
30
|
scrolledToEndThreshold?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Whether to animate the scroll.
|
|
33
|
+
*
|
|
34
|
+
* Default: false
|
|
35
|
+
*/
|
|
21
36
|
animated?: boolean;
|
|
22
37
|
}
|
|
38
|
+
export interface AixContentInsets {
|
|
39
|
+
top?: number;
|
|
40
|
+
left?: number;
|
|
41
|
+
bottom?: number;
|
|
42
|
+
right?: number;
|
|
43
|
+
}
|
|
23
44
|
export interface AixProps extends HybridViewProps {
|
|
24
45
|
shouldStartAtEnd: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Control the behavior of scrolling the content when footer size changes.
|
|
48
|
+
*
|
|
49
|
+
* By default, changing the height of the footer will shift content up in the scroll view.
|
|
50
|
+
*
|
|
51
|
+
* Default: { enabled: true, scrolledToEndThreshold: 100, animated: false }
|
|
52
|
+
*/
|
|
25
53
|
scrollOnFooterSizeUpdate?: AixScrollOnFooterSizeUpdate;
|
|
26
54
|
/**
|
|
27
55
|
* The number of pixels from the bottom of the scroll view to the end of the content that is considered "near the end".
|
|
@@ -75,6 +103,13 @@ export interface AixProps extends HybridViewProps {
|
|
|
75
103
|
*
|
|
76
104
|
*/
|
|
77
105
|
penultimateCellIndex?: number;
|
|
106
|
+
shouldApplyContentInsets?: boolean;
|
|
107
|
+
onWillApplyContentInsets?: (insets: AixContentInsets) => void;
|
|
108
|
+
/**
|
|
109
|
+
* Called when the scroll position changes between "near end" and "not near end" states.
|
|
110
|
+
* Uses `scrollEndReachedThreshold` to determine the threshold.
|
|
111
|
+
*/
|
|
112
|
+
onScrolledNearEndChange?: (isNearEnd: boolean) => void;
|
|
78
113
|
}
|
|
79
114
|
export interface AixMethods extends HybridViewMethods {
|
|
80
115
|
scrollToEnd(animated?: boolean): void;
|
|
@@ -92,7 +127,16 @@ export type AixCellView = HybridView<AixCellViewProps, {}, {
|
|
|
92
127
|
ios: 'swift';
|
|
93
128
|
android: 'kotlin';
|
|
94
129
|
}>;
|
|
130
|
+
export interface AixStickToKeyboardOffset {
|
|
131
|
+
whenKeyboardOpen: number;
|
|
132
|
+
whenKeyboardClosed: number;
|
|
133
|
+
}
|
|
134
|
+
export interface AixStickToKeyboard {
|
|
135
|
+
enabled: boolean;
|
|
136
|
+
offset?: AixStickToKeyboardOffset;
|
|
137
|
+
}
|
|
95
138
|
export interface AixComposerProps extends HybridViewProps {
|
|
139
|
+
stickToKeyboard?: AixStickToKeyboard;
|
|
96
140
|
}
|
|
97
141
|
export type AixComposer = HybridView<AixComposerProps, {}, {
|
|
98
142
|
ios: 'swift';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aix.nitro.d.ts","sourceRoot":"","sources":["../../../../src/views/aix.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,4BAA4B,CAAA;AAEnC,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,CAAC,EAAE,0BAA0B,CAAA;IAChC,MAAM,CAAC,EAAE,0BAA0B,CAAA;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,4BAA4B,CAAA;IAClC,MAAM,CAAC,EAAE,4BAA4B,CAAA;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAA;IAChB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,QAAS,SAAQ,eAAe;IAC/C,gBAAgB,EAAE,OAAO,CAAA;IACzB,wBAAwB,CAAC,EAAE,2BAA2B,CAAA;IACtD;;;;;;;;;OASG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC;;;;;;;;;;;;OAYG;IAEH,uBAAuB,CAAC,EAAE,8BAA8B,CAAA;IAExD;;;OAGG;IACH,+BAA+B,CAAC,EAAE,wBAAwB,CAAA;IAE1D;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"aix.nitro.d.ts","sourceRoot":"","sources":["../../../../src/views/aix.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,4BAA4B,CAAA;AAEnC,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,CAAC,EAAE,0BAA0B,CAAA;IAChC,MAAM,CAAC,EAAE,0BAA0B,CAAA;CACpC;AAED,MAAM,WAAW,4BAA4B;IAC3C,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,4BAA4B,CAAA;IAClC,MAAM,CAAC,EAAE,4BAA4B,CAAA;CACtC;AAED,MAAM,WAAW,2BAA2B;IAC1C;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,QAAS,SAAQ,eAAe;IAC/C,gBAAgB,EAAE,OAAO,CAAA;IACzB;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,2BAA2B,CAAA;IACtD;;;;;;;;;OASG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAClC;;;;;;;;;;;;OAYG;IAEH,uBAAuB,CAAC,EAAE,8BAA8B,CAAA;IAExD;;;OAGG;IACH,+BAA+B,CAAC,EAAE,wBAAwB,CAAA;IAE1D;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAA;IAC7D;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACvD;AAED,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,WAAW,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACrC,+BAA+B,CAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,OAAO,EAClB,oBAAoB,CAAC,EAAE,OAAO,GAC7B,IAAI,CAAA;CACR;AAED,MAAM,MAAM,GAAG,GAAG,UAAU,CAC1B,QAAQ,EACR,UAAU,EACV;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CACpC,CAAA;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAClC,gBAAgB,EAChB,EAAE,EACF;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CACpC,CAAA;AAED,MAAM,WAAW,wBAAwB;IACvC,gBAAgB,EAAE,MAAM,CAAA;IACxB,kBAAkB,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,wBAAwB,CAAA;CAClC;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,eAAe,CAAC,EAAE,kBAAkB,CAAA;CACrC;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAClC,gBAAgB,EAChB,EAAE,EACF;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CACpC,CAAA"}
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
#include <NitroModules/HybridObjectRegistry.hpp>
|
|
17
17
|
|
|
18
18
|
#include "JHybridAixSpec.hpp"
|
|
19
|
+
#include "JFunc_void_AixContentInsets.hpp"
|
|
20
|
+
#include "JFunc_void_bool.hpp"
|
|
19
21
|
#include "views/JHybridAixStateUpdater.hpp"
|
|
20
22
|
#include "JHybridAixCellViewSpec.hpp"
|
|
21
23
|
#include "views/JHybridAixCellViewStateUpdater.hpp"
|
|
@@ -33,6 +35,8 @@ int initialize(JavaVM* vm) {
|
|
|
33
35
|
return facebook::jni::initialize(vm, [] {
|
|
34
36
|
// Register native JNI methods
|
|
35
37
|
margelo::nitro::aix::JHybridAixSpec::registerNatives();
|
|
38
|
+
margelo::nitro::aix::JFunc_void_AixContentInsets_cxx::registerNatives();
|
|
39
|
+
margelo::nitro::aix::JFunc_void_bool_cxx::registerNatives();
|
|
36
40
|
margelo::nitro::aix::views::JHybridAixStateUpdater::registerNatives();
|
|
37
41
|
margelo::nitro::aix::JHybridAixCellViewSpec::registerNatives();
|
|
38
42
|
margelo::nitro::aix::views::JHybridAixCellViewStateUpdater::registerNatives();
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JAixContentInsets.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 <fbjni/fbjni.h>
|
|
11
|
+
#include "AixContentInsets.hpp"
|
|
12
|
+
|
|
13
|
+
#include <optional>
|
|
14
|
+
|
|
15
|
+
namespace margelo::nitro::aix {
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The C++ JNI bridge between the C++ struct "AixContentInsets" and the the Kotlin data class "AixContentInsets".
|
|
21
|
+
*/
|
|
22
|
+
struct JAixContentInsets final: public jni::JavaClass<JAixContentInsets> {
|
|
23
|
+
public:
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/aix/AixContentInsets;";
|
|
25
|
+
|
|
26
|
+
public:
|
|
27
|
+
/**
|
|
28
|
+
* Convert this Java/Kotlin-based struct to the C++ struct AixContentInsets by copying all values to C++.
|
|
29
|
+
*/
|
|
30
|
+
[[maybe_unused]]
|
|
31
|
+
[[nodiscard]]
|
|
32
|
+
AixContentInsets toCpp() const {
|
|
33
|
+
static const auto clazz = javaClassStatic();
|
|
34
|
+
static const auto fieldTop = clazz->getField<jni::JDouble>("top");
|
|
35
|
+
jni::local_ref<jni::JDouble> top = this->getFieldValue(fieldTop);
|
|
36
|
+
static const auto fieldLeft = clazz->getField<jni::JDouble>("left");
|
|
37
|
+
jni::local_ref<jni::JDouble> left = this->getFieldValue(fieldLeft);
|
|
38
|
+
static const auto fieldBottom = clazz->getField<jni::JDouble>("bottom");
|
|
39
|
+
jni::local_ref<jni::JDouble> bottom = this->getFieldValue(fieldBottom);
|
|
40
|
+
static const auto fieldRight = clazz->getField<jni::JDouble>("right");
|
|
41
|
+
jni::local_ref<jni::JDouble> right = this->getFieldValue(fieldRight);
|
|
42
|
+
return AixContentInsets(
|
|
43
|
+
top != nullptr ? std::make_optional(top->value()) : std::nullopt,
|
|
44
|
+
left != nullptr ? std::make_optional(left->value()) : std::nullopt,
|
|
45
|
+
bottom != nullptr ? std::make_optional(bottom->value()) : std::nullopt,
|
|
46
|
+
right != nullptr ? std::make_optional(right->value()) : std::nullopt
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public:
|
|
51
|
+
/**
|
|
52
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
53
|
+
*/
|
|
54
|
+
[[maybe_unused]]
|
|
55
|
+
static jni::local_ref<JAixContentInsets::javaobject> fromCpp(const AixContentInsets& value) {
|
|
56
|
+
using JSignature = JAixContentInsets(jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JDouble>);
|
|
57
|
+
static const auto clazz = javaClassStatic();
|
|
58
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
59
|
+
return create(
|
|
60
|
+
clazz,
|
|
61
|
+
value.top.has_value() ? jni::JDouble::valueOf(value.top.value()) : nullptr,
|
|
62
|
+
value.left.has_value() ? jni::JDouble::valueOf(value.left.value()) : nullptr,
|
|
63
|
+
value.bottom.has_value() ? jni::JDouble::valueOf(value.bottom.value()) : nullptr,
|
|
64
|
+
value.right.has_value() ? jni::JDouble::valueOf(value.right.value()) : nullptr
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
} // namespace margelo::nitro::aix
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JAixStickToKeyboard.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 <fbjni/fbjni.h>
|
|
11
|
+
#include "AixStickToKeyboard.hpp"
|
|
12
|
+
|
|
13
|
+
#include "AixStickToKeyboardOffset.hpp"
|
|
14
|
+
#include "JAixStickToKeyboardOffset.hpp"
|
|
15
|
+
#include <optional>
|
|
16
|
+
|
|
17
|
+
namespace margelo::nitro::aix {
|
|
18
|
+
|
|
19
|
+
using namespace facebook;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The C++ JNI bridge between the C++ struct "AixStickToKeyboard" and the the Kotlin data class "AixStickToKeyboard".
|
|
23
|
+
*/
|
|
24
|
+
struct JAixStickToKeyboard final: public jni::JavaClass<JAixStickToKeyboard> {
|
|
25
|
+
public:
|
|
26
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/aix/AixStickToKeyboard;";
|
|
27
|
+
|
|
28
|
+
public:
|
|
29
|
+
/**
|
|
30
|
+
* Convert this Java/Kotlin-based struct to the C++ struct AixStickToKeyboard by copying all values to C++.
|
|
31
|
+
*/
|
|
32
|
+
[[maybe_unused]]
|
|
33
|
+
[[nodiscard]]
|
|
34
|
+
AixStickToKeyboard toCpp() const {
|
|
35
|
+
static const auto clazz = javaClassStatic();
|
|
36
|
+
static const auto fieldEnabled = clazz->getField<jboolean>("enabled");
|
|
37
|
+
jboolean enabled = this->getFieldValue(fieldEnabled);
|
|
38
|
+
static const auto fieldOffset = clazz->getField<JAixStickToKeyboardOffset>("offset");
|
|
39
|
+
jni::local_ref<JAixStickToKeyboardOffset> offset = this->getFieldValue(fieldOffset);
|
|
40
|
+
return AixStickToKeyboard(
|
|
41
|
+
static_cast<bool>(enabled),
|
|
42
|
+
offset != nullptr ? std::make_optional(offset->toCpp()) : std::nullopt
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public:
|
|
47
|
+
/**
|
|
48
|
+
* Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
|
|
49
|
+
*/
|
|
50
|
+
[[maybe_unused]]
|
|
51
|
+
static jni::local_ref<JAixStickToKeyboard::javaobject> fromCpp(const AixStickToKeyboard& value) {
|
|
52
|
+
using JSignature = JAixStickToKeyboard(jboolean, jni::alias_ref<JAixStickToKeyboardOffset>);
|
|
53
|
+
static const auto clazz = javaClassStatic();
|
|
54
|
+
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
55
|
+
return create(
|
|
56
|
+
clazz,
|
|
57
|
+
value.enabled,
|
|
58
|
+
value.offset.has_value() ? JAixStickToKeyboardOffset::fromCpp(value.offset.value()) : nullptr
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
} // namespace margelo::nitro::aix
|