@symbiote-native/react 0.4.0 → 2.0.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 -16
- package/build/components/activity-indicator-props.d.ts +4 -0
- package/build/components/activity-indicator-props.js +1 -0
- package/build/components/{button.d.ts → button-props.d.ts} +0 -2
- package/build/components/button-props.js +1 -0
- package/build/components/flat-list/index.js +2 -2
- package/build/components/image/image-props.d.ts +4 -0
- package/build/components/image/image-props.js +1 -0
- package/build/components/image-background-props.d.ts +9 -0
- package/build/components/image-background-props.js +1 -0
- package/build/components/input-accessory-view-props.d.ts +10 -0
- package/build/components/input-accessory-view-props.js +1 -0
- package/build/components/keyboard-avoiding-view/index.js +4 -4
- package/build/components/modal/index.js +3 -3
- package/build/components/pressable/{index.d.ts → pressable-props.d.ts} +4 -4
- package/build/components/pressable/pressable-props.js +1 -0
- package/build/components/{refresh-control/index.d.ts → refresh-control-props.d.ts} +3 -3
- package/build/components/refresh-control-props.js +1 -0
- package/build/components/safe-area-view-props.d.ts +11 -0
- package/build/components/safe-area-view-props.js +1 -0
- package/build/components/scroll-view/{shared.d.ts → scroll-view-props.d.ts} +4 -26
- package/build/components/scroll-view/scroll-view-props.js +1 -0
- package/build/components/switch/switch-props.d.ts +4 -0
- package/build/components/switch/switch-props.js +1 -0
- package/build/components/text-input/text-input-props.d.ts +4 -0
- package/build/components/text-input/text-input-props.js +1 -0
- package/build/components/touchable/touchable-props.d.ts +17 -0
- package/build/components/touchable/touchable-props.js +1 -0
- package/build/components/touchable-native-feedback/touchable-native-feedback-props.d.ts +8 -0
- package/build/components/touchable-native-feedback/touchable-native-feedback-props.js +1 -0
- package/build/components/touchable-without-feedback/touchable-without-feedback-props.d.ts +6 -0
- package/build/components/touchable-without-feedback/touchable-without-feedback-props.js +1 -0
- package/build/components/virtualized-list/index.js +83 -38
- package/build/components.d.ts +3 -4
- package/build/components.js +5 -17
- package/build/create-portal/index.js +1 -1
- package/build/create-tunnel/index.js +1 -1
- package/build/descriptor-to-react/index.js +1 -1
- package/build/host-config.d.ts +2 -2
- package/build/host-config.js +51 -10
- package/build/host-instance.js +1 -1
- package/build/index.d.ts +23 -27
- package/build/index.js +14 -14
- package/build/jsx-dev-runtime.d.ts +3 -0
- package/build/jsx-dev-runtime.js +10 -0
- package/build/jsx-namespace.type-check.d.ts +1 -0
- package/build/jsx-namespace.type-check.js +7 -0
- package/build/jsx-runtime.d.ts +62 -0
- package/build/jsx-runtime.js +1 -0
- package/build/modules/animated/create-animated-component.d.ts +2 -1
- package/build/modules/animated/create-animated-component.js +7 -1
- package/build/modules/animated/index.d.ts +0 -1
- package/build/modules/animated/index.js +16 -22
- package/build/modules/image/index.d.ts +3 -0
- package/build/modules/image/index.js +14 -0
- package/build/register.d.ts +1 -0
- package/build/register.js +15 -0
- package/build/render.js +2 -4
- package/metro-css-parser.cjs +2 -1
- package/package.json +28 -8
- package/build/components/activity-indicator/index.android.d.ts +0 -3
- package/build/components/activity-indicator/index.android.js +0 -17
- package/build/components/activity-indicator/index.d.ts +0 -1
- package/build/components/activity-indicator/index.ios.d.ts +0 -3
- package/build/components/activity-indicator/index.ios.js +0 -16
- package/build/components/activity-indicator/index.js +0 -4
- package/build/components/activity-indicator/shared.d.ts +0 -6
- package/build/components/activity-indicator/shared.js +0 -22
- package/build/components/button.js +0 -42
- package/build/components/image/index.d.ts +0 -9
- package/build/components/image/index.js +0 -28
- package/build/components/image-background/index.d.ts +0 -10
- package/build/components/image-background/index.js +0 -46
- package/build/components/input-accessory-view/index.d.ts +0 -11
- package/build/components/input-accessory-view/index.js +0 -19
- package/build/components/pressable/index.js +0 -100
- package/build/components/refresh-control/index.js +0 -21
- package/build/components/safe-area-view/index.d.ts +0 -11
- package/build/components/safe-area-view/index.js +0 -18
- package/build/components/scroll-view/index.android.d.ts +0 -3
- package/build/components/scroll-view/index.android.js +0 -61
- package/build/components/scroll-view/index.d.ts +0 -1
- package/build/components/scroll-view/index.ios.d.ts +0 -3
- package/build/components/scroll-view/index.ios.js +0 -29
- package/build/components/scroll-view/index.js +0 -4
- package/build/components/scroll-view/shared.js +0 -240
- package/build/components/scroll-view/sticky-header.d.ts +0 -18
- package/build/components/scroll-view/sticky-header.js +0 -227
- package/build/components/switch/index.android.d.ts +0 -3
- package/build/components/switch/index.android.js +0 -18
- package/build/components/switch/index.d.ts +0 -1
- package/build/components/switch/index.ios.d.ts +0 -3
- package/build/components/switch/index.ios.js +0 -16
- package/build/components/switch/index.js +0 -6
- package/build/components/switch/shared.d.ts +0 -9
- package/build/components/switch/shared.js +0 -60
- package/build/components/text-input/index.d.ts +0 -50
- package/build/components/text-input/index.js +0 -172
- package/build/components/touchable/index.d.ts +0 -22
- package/build/components/touchable/index.js +0 -165
- package/build/components/touchable-native-feedback/index.d.ts +0 -18
- package/build/components/touchable-native-feedback/index.js +0 -32
package/README.md
CHANGED
|
@@ -35,28 +35,42 @@ yet, so the Metro config and the `index.js` entry seam below come from
|
|
|
35
35
|
|
|
36
36
|
## Use it
|
|
37
37
|
|
|
38
|
-
The app is ordinary React —
|
|
38
|
+
The app is ordinary React — the native primitives are plain intrinsic tags, no import needed:
|
|
39
39
|
|
|
40
40
|
```jsx
|
|
41
41
|
import { useState } from 'react';
|
|
42
|
-
import { View, Text, Pressable } from '@symbiote-native/react';
|
|
43
42
|
|
|
44
43
|
export default function App() {
|
|
45
44
|
const [count, setCount] = useState(0);
|
|
46
45
|
return (
|
|
47
|
-
<
|
|
48
|
-
<
|
|
49
|
-
<
|
|
50
|
-
<
|
|
51
|
-
</
|
|
52
|
-
</
|
|
46
|
+
<view style={{ padding: 24 }}>
|
|
47
|
+
<text>Taps: {count}</text>
|
|
48
|
+
<pressable onPress={() => setCount(c => c + 1)}>
|
|
49
|
+
<text>Tap me</text>
|
|
50
|
+
</pressable>
|
|
51
|
+
</view>
|
|
53
52
|
);
|
|
54
53
|
}
|
|
55
54
|
```
|
|
56
55
|
|
|
57
|
-
The
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
The zero-config entry wires the RN-backed host seams (colors, images, device events,
|
|
57
|
+
third-party ViewConfigs) and registers the app in one call — this is what
|
|
58
|
+
[`examples/react`](../../examples/react) actually uses:
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
// index.js
|
|
62
|
+
import { registerApp } from '@symbiote-native/react/bootstrap';
|
|
63
|
+
import App from './App';
|
|
64
|
+
import { name as appName } from './app.json';
|
|
65
|
+
|
|
66
|
+
registerApp(App, { appName });
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
`registerApp` mirrors bare RN's own `AppRegistry.registerComponent(appName, () => App)` idiom,
|
|
70
|
+
minus the manual host wiring in front of it — RN's own renderer never runs; `nativeFabric-
|
|
71
|
+
UIManager` is driven directly. For anything the defaults don't cover (a custom color processor,
|
|
72
|
+
image resolver, or manual control over the mount callback), drive the lower-level seam directly —
|
|
73
|
+
a raw _runnable_ instead of a registered component:
|
|
60
74
|
|
|
61
75
|
```js
|
|
62
76
|
// index.js
|
|
@@ -77,8 +91,8 @@ AppRegistry.registerRunnable(appName, ({ rootTag }) => {
|
|
|
77
91
|
});
|
|
78
92
|
```
|
|
79
93
|
|
|
80
|
-
|
|
81
|
-
|
|
94
|
+
Either way, the full canary ([`App.tsx`](../../examples/react/App.tsx)) exercises every block of
|
|
95
|
+
the surface below.
|
|
82
96
|
|
|
83
97
|
---
|
|
84
98
|
|
|
@@ -87,9 +101,11 @@ canary ([`App.tsx`](../../examples/react/App.tsx)) exercises every block of the
|
|
|
87
101
|
Every interaction commits through `@symbiote-native/engine` into Fabric, with RN's renderer never in the
|
|
88
102
|
path:
|
|
89
103
|
|
|
90
|
-
- **Primitives** — `
|
|
91
|
-
`
|
|
92
|
-
`
|
|
104
|
+
- **Primitives** — `view` · `text` · `image` · `image-background` · `scroll-view` · `text-input` ·
|
|
105
|
+
`pressable` · `touchable-opacity` / `touchable-native-feedback` / `touchable-without-feedback` /
|
|
106
|
+
`touchable-highlight` · `button` · `switch` · `modal` · `activity-indicator` ·
|
|
107
|
+
`safe-area-view` · `refresh-control` · plus the components `FlatList` · `SectionList` ·
|
|
108
|
+
`VirtualizedList`.
|
|
93
109
|
- **Runtime modules** — `Platform` · `StyleSheet` (incl. `hairlineWidth`) · `Dimensions` ·
|
|
94
110
|
`Appearance` · `PixelRatio` · `AppState`, plus imperative `Alert` · `ActionSheetIOS` · `Share` ·
|
|
95
111
|
`Linking` · `Vibration` · `Keyboard` · `StatusBar` — each reaching its real native module on the
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -48,9 +48,9 @@ export function FlatList(props) {
|
|
|
48
48
|
const key = keyExtractor ? keyExtractor(item, index) : String(index);
|
|
49
49
|
// The row IS the virtualized cell, so every item in it shares the row's separators handle
|
|
50
50
|
// (the divider sits between rows, not columns), like RN's multi-column FlatList.
|
|
51
|
-
return createElement('
|
|
51
|
+
return createElement('view', { key, style: { flex: 1 } }, renderItem({ item, index, separators: info.separators }));
|
|
52
52
|
});
|
|
53
|
-
return createElement('
|
|
53
|
+
return createElement('view', { style: rowStyle }, ...cells);
|
|
54
54
|
};
|
|
55
55
|
// Viewability over rows expands back to per-item tokens so the caller sees item-level
|
|
56
56
|
// visibility, not row-level (shared expandRowViewability).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { IImageProps } from '@symbiote-native/components';
|
|
3
|
+
import type { IStyleProp, IViewStyle } from '../utils/styles';
|
|
4
|
+
export interface IImageBackgroundProps extends Omit<IImageProps, 'style'> {
|
|
5
|
+
style?: IStyleProp<IViewStyle>;
|
|
6
|
+
imageStyle?: IStyleProp<IViewStyle> | string;
|
|
7
|
+
className?: string;
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { IAccessibilityProps, IAriaProps } from '@symbiote-native/components';
|
|
3
|
+
import type { IStyleProp, IViewStyle } from '../utils/styles';
|
|
4
|
+
export interface IInputAccessoryViewProps extends IAccessibilityProps, IAriaProps {
|
|
5
|
+
nativeID?: string;
|
|
6
|
+
backgroundColor?: string;
|
|
7
|
+
style?: IStyleProp<IViewStyle>;
|
|
8
|
+
className?: string;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
import { createElement, useEffect, useRef, useState, } from 'react';
|
|
12
12
|
import { dlog, Keyboard, Platform, } from '@symbiote-native/engine';
|
|
13
13
|
import { computeInset, keyboardAvoidingEventNamesFor, readKeyboardFrame, readLayoutFrame, readPrefersCrossFadeTransitions, resolveKeyboardAvoidingLayout, DEFAULT_VERTICAL_OFFSET, } from '@symbiote-native/components';
|
|
14
|
-
import {
|
|
14
|
+
import {} from '../../components.js';
|
|
15
15
|
// The two notifications to subscribe to, per host (iOS takes the `will` pair so the view rides
|
|
16
16
|
// up with the keyboard animation; Android has no will-notifications). Resolved ONCE at module
|
|
17
17
|
// scope: Platform.OS is fixed for the process, so recomputing it per render buys nothing.
|
|
@@ -86,11 +86,11 @@ export const KeyboardAvoidingView = props => {
|
|
|
86
86
|
// 'nested' ('position') pushes the content in an inner View by `bottom: inset`; the wrapper
|
|
87
87
|
// modes adjust the single wrapper directly.
|
|
88
88
|
if (layout.kind === 'nested') {
|
|
89
|
-
return renderWrapper(layout.wrapperStyle, createElement(
|
|
89
|
+
return renderWrapper(layout.wrapperStyle, createElement('view', { style: layout.innerStyle }, children));
|
|
90
90
|
}
|
|
91
91
|
return renderWrapper(layout.wrapperStyle, children);
|
|
92
92
|
// The wrapper carries onLayout. The View FC's public props don't surface it, but
|
|
93
|
-
// `
|
|
93
|
+
// `view` routes the base layout event at runtime; widen the props through
|
|
94
94
|
// a typed variable (no inline-literal excess-property check, no `as`) so the
|
|
95
95
|
// onLayout reaches the host without editing View's public type.
|
|
96
96
|
function renderWrapper(wrapStyle, content) {
|
|
@@ -100,6 +100,6 @@ export const KeyboardAvoidingView = props => {
|
|
|
100
100
|
onLayout: handleLayout,
|
|
101
101
|
children: content,
|
|
102
102
|
};
|
|
103
|
-
return createElement(
|
|
103
|
+
return createElement('view', wrapperProps);
|
|
104
104
|
}
|
|
105
105
|
};
|
|
@@ -15,11 +15,11 @@ import { createElement, useEffect, useReducer, } from 'react';
|
|
|
15
15
|
import { dlog } from '@symbiote-native/engine';
|
|
16
16
|
import { createInitialModalState, modalReducer, renderModal, resolveAccessibilityProps, shouldRenderModal, } from '@symbiote-native/components';
|
|
17
17
|
export const Modal = rawProps => {
|
|
18
|
-
// Modal owns its host element (
|
|
18
|
+
// Modal owns its host element (modal), so it folds aria/role here; the resolved fields
|
|
19
19
|
// ride the host node via `...passthrough`. The events (onShow/onDismiss/onRequestClose/
|
|
20
20
|
// onOrientationChange) are real ViewConfig DirectEvents, so they too ride passthrough raw.
|
|
21
21
|
// className is pulled out here, like style, and applied to the CONTAINER element below — left in
|
|
22
|
-
// ...passthrough it would land on the outer
|
|
22
|
+
// ...passthrough it would land on the outer modal host instead (renderModal composes
|
|
23
23
|
// `style` into the container's style, not the host's).
|
|
24
24
|
const { visible, transparent, backdropColor, animationType, presentationStyle, supportedOrientations, hardwareAccelerated, statusBarTranslucent, navigationBarTranslucent, allowSwipeDismissal, style, className, children, ...passthrough } = resolveAccessibilityProps(rawProps);
|
|
25
25
|
// The iOS keep-alive: the effect runs AFTER this render, so a visible→hidden transition keeps the
|
|
@@ -47,7 +47,7 @@ export const Modal = rawProps => {
|
|
|
47
47
|
style,
|
|
48
48
|
passthrough,
|
|
49
49
|
});
|
|
50
|
-
// root =
|
|
50
|
+
// root = modal > [container]; the user children nest UNDER the container View, never as
|
|
51
51
|
// a direct sibling of the host (RN's modal content layout).
|
|
52
52
|
const [container] = root.children;
|
|
53
53
|
if (typeof container === 'string')
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import type { IAccessibilityProps, IAriaProps } from '@symbiote-native/components';
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { IAccessibilityProps, IAriaProps, IPressHandler, IPressState, IPressableAndroidRippleConfig, IRectOffset } from '@symbiote-native/components';
|
|
4
3
|
import type { IStyleProp, IViewStyle } from '../../utils/styles';
|
|
5
4
|
export type { IPressState, IPressableAndroidRippleConfig, } from '@symbiote-native/components';
|
|
6
5
|
type IPressableStyle = IStyleProp<IViewStyle> | ((state: IPressState) => IStyleProp<IViewStyle>);
|
|
@@ -13,10 +12,12 @@ export interface IPressableProps extends IAccessibilityProps, IAriaProps {
|
|
|
13
12
|
onLongPress?: IPressHandler;
|
|
14
13
|
delayLongPress?: number;
|
|
15
14
|
disabled?: boolean;
|
|
15
|
+
focusable?: boolean;
|
|
16
16
|
cancelable?: boolean;
|
|
17
17
|
hitSlop?: IRectOffset;
|
|
18
18
|
pressRetentionOffset?: IRectOffset;
|
|
19
19
|
unstable_pressDelay?: number;
|
|
20
|
+
minPressDuration?: number;
|
|
20
21
|
android_ripple?: IPressableAndroidRippleConfig;
|
|
21
22
|
android_disableSound?: boolean;
|
|
22
23
|
onHoverIn?: IPressHandler;
|
|
@@ -27,4 +28,3 @@ export interface IPressableProps extends IAccessibilityProps, IAriaProps {
|
|
|
27
28
|
className?: string;
|
|
28
29
|
children?: IChildrenProp;
|
|
29
30
|
}
|
|
30
|
-
export declare const Pressable: FC<IPressableProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { IAccessibilityProps, IAriaProps } from '@symbiote-native/components';
|
|
3
3
|
export interface IRefreshControlProps extends IAccessibilityProps, IAriaProps {
|
|
4
4
|
refreshing: boolean;
|
|
5
|
+
id?: string;
|
|
5
6
|
onRefresh?: () => void | Promise<void>;
|
|
6
7
|
tintColor?: string;
|
|
7
8
|
title?: string;
|
|
@@ -14,4 +15,3 @@ export interface IRefreshControlProps extends IAccessibilityProps, IAriaProps {
|
|
|
14
15
|
children?: ReactNode;
|
|
15
16
|
className?: string;
|
|
16
17
|
}
|
|
17
|
-
export declare const RefreshControl: FC<IRefreshControlProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { ISymbioteEvent } from '@symbiote-native/engine';
|
|
3
|
+
import type { IAccessibilityProps, IAriaProps } from '@symbiote-native/components';
|
|
4
|
+
import type { IStyleProp, IViewStyle } from '../utils/styles';
|
|
5
|
+
export interface ISafeAreaViewProps extends IAccessibilityProps, IAriaProps {
|
|
6
|
+
style?: IStyleProp<IViewStyle>;
|
|
7
|
+
id?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
onLayout?: (event: ISymbioteEvent) => void;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { type IAccessibilityProps, type IAriaProps } from '@symbiote-native/components';
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { ISymbioteEvent } from '@symbiote-native/engine';
|
|
3
|
+
import type { IAccessibilityProps, IAriaProps } from '@symbiote-native/components';
|
|
5
4
|
import type { IStyleProp, IViewStyle } from '../../utils/styles';
|
|
6
|
-
import { type IStickyHeaderComponentType } from './sticky-header';
|
|
7
5
|
export type { IScrollViewHandle } from '@symbiote-native/components';
|
|
8
6
|
type IScrollHandler = (event: ISymbioteEvent) => void;
|
|
9
|
-
type ILayoutHandler = (event: ISymbioteEvent) => void;
|
|
10
7
|
export interface IScrollViewProps extends IAccessibilityProps, IAriaProps {
|
|
11
8
|
style?: IStyleProp<IViewStyle>;
|
|
12
9
|
contentContainerStyle?: IStyleProp<IViewStyle> | string;
|
|
@@ -28,7 +25,6 @@ export interface IScrollViewProps extends IAccessibilityProps, IAriaProps {
|
|
|
28
25
|
x: number;
|
|
29
26
|
y: number;
|
|
30
27
|
};
|
|
31
|
-
refreshControl?: ReactElement<IClonableRefreshControl>;
|
|
32
28
|
removeClippedSubviews?: boolean;
|
|
33
29
|
onContentSizeChange?: (width: number, height: number) => void;
|
|
34
30
|
snapToInterval?: number;
|
|
@@ -39,7 +35,6 @@ export interface IScrollViewProps extends IAccessibilityProps, IAriaProps {
|
|
|
39
35
|
disableIntervalMomentum?: boolean;
|
|
40
36
|
stickyHeaderIndices?: number[];
|
|
41
37
|
invertStickyHeaders?: boolean;
|
|
42
|
-
StickyHeaderComponent?: IStickyHeaderComponentType;
|
|
43
38
|
keyboardDismissMode?: 'none' | 'on-drag' | 'interactive';
|
|
44
39
|
keyboardShouldPersistTaps?: boolean | 'always' | 'never' | 'handled';
|
|
45
40
|
maintainVisibleContentPosition?: {
|
|
@@ -69,7 +64,7 @@ export interface IScrollViewProps extends IAccessibilityProps, IAriaProps {
|
|
|
69
64
|
fadingEdgeLength?: number;
|
|
70
65
|
persistentScrollbar?: boolean;
|
|
71
66
|
endFillColor?: string;
|
|
72
|
-
onLayout?:
|
|
67
|
+
onLayout?: IScrollHandler;
|
|
73
68
|
onScroll?: IScrollHandler;
|
|
74
69
|
onScrollBeginDrag?: IScrollHandler;
|
|
75
70
|
onScrollEndDrag?: IScrollHandler;
|
|
@@ -79,20 +74,3 @@ export interface IScrollViewProps extends IAccessibilityProps, IAriaProps {
|
|
|
79
74
|
children?: ReactNode;
|
|
80
75
|
className?: string;
|
|
81
76
|
}
|
|
82
|
-
export interface IClonableRefreshControl {
|
|
83
|
-
style?: IStyleProp<IViewStyle>;
|
|
84
|
-
children?: ReactNode;
|
|
85
|
-
}
|
|
86
|
-
export interface IPreparedScrollView {
|
|
87
|
-
scrollViewIntrinsic: ISymbioteIntrinsic;
|
|
88
|
-
scrollViewBaseStyle: IStyleProp<IViewStyle> | undefined;
|
|
89
|
-
outerProps: Record<string, unknown>;
|
|
90
|
-
style: IStyleProp<IViewStyle> | undefined;
|
|
91
|
-
layoutSplitStyle: IStyleProp<IViewStyle>;
|
|
92
|
-
content: ReactElement;
|
|
93
|
-
refreshControl: ReactElement<IClonableRefreshControl> | undefined;
|
|
94
|
-
scrollAnimatedValue: AnimatedValue;
|
|
95
|
-
nativeStickyAvailable: boolean;
|
|
96
|
-
}
|
|
97
|
-
export declare function usePreparedScrollView(rawProps: IScrollViewProps): IPreparedScrollView;
|
|
98
|
-
export declare function useNativeStickyScrollAttach(scrollNodeRef: RefObject<ISymbioteNode | null>, scrollAnimatedValue: AnimatedValue, enabled: boolean): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { IPressTimingProps } from '@symbiote-native/components';
|
|
3
|
+
import type { IStyleProp, IViewStyle } from '../../utils/styles';
|
|
4
|
+
import type { IPressableProps } from '../pressable/pressable-props';
|
|
5
|
+
export type ITouchableBaseProps = Omit<IPressableProps, 'style' | 'children'> & IPressTimingProps & {
|
|
6
|
+
style?: IStyleProp<IViewStyle>;
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
};
|
|
9
|
+
export interface ITouchableOpacityProps extends ITouchableBaseProps {
|
|
10
|
+
activeOpacity?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface ITouchableHighlightProps extends ITouchableBaseProps {
|
|
13
|
+
activeOpacity?: number;
|
|
14
|
+
underlayColor?: string;
|
|
15
|
+
onShowUnderlay?: () => void;
|
|
16
|
+
onHideUnderlay?: () => void;
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { INativeFeedbackBackground } from '@symbiote-native/components';
|
|
3
|
+
import type { IPressableProps } from '../pressable/pressable-props';
|
|
4
|
+
export type ITouchableNativeFeedbackProps = Omit<IPressableProps, 'style' | 'children'> & {
|
|
5
|
+
background?: INativeFeedbackBackground;
|
|
6
|
+
useForeground?: boolean;
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { IPressTimingProps } from '@symbiote-native/components';
|
|
3
|
+
import type { IPressableProps } from '../pressable/pressable-props';
|
|
4
|
+
export type ITouchableWithoutFeedbackProps = Omit<IPressableProps, 'style' | 'children'> & IPressTimingProps & {
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|