@symbiote-native/react 1.0.0 → 3.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 +15 -14
- package/build/components/activity-indicator-props.d.ts +4 -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 +3 -3
- 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 +10 -5
- package/build/components/modal/index.js +3 -3
- package/build/components/pressable/{index.d.ts → pressable-props.d.ts} +6 -5
- 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 +19 -0
- package/build/components/touchable/touchable-props.js +1 -0
- package/build/components/touchable-native-feedback/touchable-native-feedback-props.d.ts +9 -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 +7 -0
- package/build/components/touchable-without-feedback/touchable-without-feedback-props.js +1 -0
- package/build/components/virtualized-list/index.js +90 -41
- package/build/components.d.ts +1 -2
- package/build/components.js +5 -19
- 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.js +23 -12
- package/build/index.d.ts +23 -28
- 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/index.d.ts +29 -20
- 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/metro-css-parser.cjs +2 -1
- package/package.json +12 -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 -112
- package/build/components/refresh-control/index.js +0 -21
- package/build/components/safe-area-view/index.d.ts +0 -12
- 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 -180
- 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/build/jsx.d.ts +0 -18
- package/build/state-style.d.ts +0 -1
- package/build/state-style.js +0 -13
- /package/build/{jsx.js → components/activity-indicator-props.js} +0 -0
package/README.md
CHANGED
|
@@ -27,29 +27,28 @@ npm install @symbiote-native/react react-native react
|
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
`react-native` and `react` stay your app's own top-level dependencies — SymbioteNative doesn't hide
|
|
30
|
-
them, it only replaces the JS renderer that drives them.
|
|
31
|
-
|
|
32
|
-
[`examples/react`](../../examples/react) rather than a generator.
|
|
30
|
+
them, it only replaces the JS renderer that drives them. `npx @symbiote-native/cli new --framework react`
|
|
31
|
+
scaffolds the Metro config and the `index.js` entry seam below for a new app; wiring them into an
|
|
32
|
+
existing one still follows [`examples/react`](../../examples/react) rather than a generator.
|
|
33
33
|
|
|
34
34
|
---
|
|
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
|
```
|
|
@@ -102,9 +101,11 @@ the surface below.
|
|
|
102
101
|
Every interaction commits through `@symbiote-native/engine` into Fabric, with RN's renderer never in the
|
|
103
102
|
path:
|
|
104
103
|
|
|
105
|
-
- **Primitives** — `
|
|
106
|
-
`
|
|
107
|
-
`
|
|
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`.
|
|
108
109
|
- **Runtime modules** — `Platform` · `StyleSheet` (incl. `hairlineWidth`) · `Dimensions` ·
|
|
109
110
|
`Appearance` · `PixelRatio` · `AppState`, plus imperative `Alert` · `ActionSheetIOS` · `Share` ·
|
|
110
111
|
`Linking` · `Vibration` · `Keyboard` · `StatusBar` — each reaching its real native module on the
|
|
@@ -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).
|
|
@@ -80,7 +80,7 @@ export function FlatList(props) {
|
|
|
80
80
|
getItem: (_source, index) => rows[index],
|
|
81
81
|
getItemCount: () => rows.length,
|
|
82
82
|
renderItem: renderRow,
|
|
83
|
-
keyExtractor: rowKeyExtractor,
|
|
83
|
+
keyExtractor: (row) => rowKeyExtractor(row, keyExtractor),
|
|
84
84
|
onViewableItemsChanged: rowOnViewableItemsChanged,
|
|
85
85
|
viewabilityConfigCallbackPairs: rowViewabilityPairs,
|
|
86
86
|
ItemSeparatorComponent: rowSeparatorComponent,
|
|
@@ -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 {};
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
// around its children.
|
|
11
11
|
import { createElement, useEffect, useRef, useState, } from 'react';
|
|
12
12
|
import { dlog, Keyboard, Platform, } from '@symbiote-native/engine';
|
|
13
|
-
import { computeInset, keyboardAvoidingEventNamesFor, readKeyboardFrame, readLayoutFrame, readPrefersCrossFadeTransitions, resolveKeyboardAvoidingLayout, DEFAULT_VERTICAL_OFFSET, } from '@symbiote-native/components';
|
|
14
|
-
import {
|
|
13
|
+
import { computeInset, configureKeyboardAvoidingAnimation, keyboardAvoidingEventNamesFor, readKeyboardAnimationTiming, readKeyboardFrame, readLayoutFrame, readPrefersCrossFadeTransitions, resolveKeyboardAvoidingLayout, DEFAULT_VERTICAL_OFFSET, } from '@symbiote-native/components';
|
|
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.
|
|
@@ -47,6 +47,11 @@ export const KeyboardAvoidingView = props => {
|
|
|
47
47
|
previousInset,
|
|
48
48
|
prefersCrossFadeTransitions: prefersCrossFadeRef.current,
|
|
49
49
|
});
|
|
50
|
+
// RN's `_updateBottomIfNecessary` skips the animation entirely when the inset did not
|
|
51
|
+
// change (`if (this._bottom === height) return;`) — arming a transition for a value that
|
|
52
|
+
// moves nowhere would only ever animate other props the app changed this frame.
|
|
53
|
+
if (next !== previousInset)
|
|
54
|
+
configureKeyboardAvoidingAnimation(readKeyboardAnimationTiming(payload), enabled);
|
|
50
55
|
dlog(`KeyboardAvoidingView show -> inset ${next}`);
|
|
51
56
|
return next;
|
|
52
57
|
});
|
|
@@ -86,11 +91,11 @@ export const KeyboardAvoidingView = props => {
|
|
|
86
91
|
// 'nested' ('position') pushes the content in an inner View by `bottom: inset`; the wrapper
|
|
87
92
|
// modes adjust the single wrapper directly.
|
|
88
93
|
if (layout.kind === 'nested') {
|
|
89
|
-
return renderWrapper(layout.wrapperStyle, createElement(
|
|
94
|
+
return renderWrapper(layout.wrapperStyle, createElement('view', { style: layout.innerStyle }, children));
|
|
90
95
|
}
|
|
91
96
|
return renderWrapper(layout.wrapperStyle, children);
|
|
92
97
|
// The wrapper carries onLayout. The View FC's public props don't surface it, but
|
|
93
|
-
// `
|
|
98
|
+
// `view` routes the base layout event at runtime; widen the props through
|
|
94
99
|
// a typed variable (no inline-literal excess-property check, no `as`) so the
|
|
95
100
|
// onLayout reaches the host without editing View's public type.
|
|
96
101
|
function renderWrapper(wrapStyle, content) {
|
|
@@ -100,6 +105,6 @@ export const KeyboardAvoidingView = props => {
|
|
|
100
105
|
onLayout: handleLayout,
|
|
101
106
|
children: content,
|
|
102
107
|
};
|
|
103
|
-
return createElement(
|
|
108
|
+
return createElement('view', wrapperProps);
|
|
104
109
|
}
|
|
105
110
|
};
|
|
@@ -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,14 @@ 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
|
+
blockNativeResponder?: boolean;
|
|
17
18
|
hitSlop?: IRectOffset;
|
|
19
|
+
testOnly_pressed?: boolean;
|
|
18
20
|
pressRetentionOffset?: IRectOffset;
|
|
19
21
|
unstable_pressDelay?: number;
|
|
22
|
+
minPressDuration?: number;
|
|
20
23
|
android_ripple?: IPressableAndroidRippleConfig;
|
|
21
24
|
android_disableSound?: boolean;
|
|
22
25
|
onHoverIn?: IPressHandler;
|
|
@@ -27,5 +30,3 @@ export interface IPressableProps extends IAccessibilityProps, IAriaProps {
|
|
|
27
30
|
className?: string;
|
|
28
31
|
children?: IChildrenProp;
|
|
29
32
|
}
|
|
30
|
-
export declare const Pressable: FC<IPressableProps>;
|
|
31
|
-
export declare const TouchablePressable: 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,19 @@
|
|
|
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
|
+
touchSoundDisabled?: boolean;
|
|
16
|
+
testOnly_pressed?: boolean;
|
|
17
|
+
onShowUnderlay?: () => void;
|
|
18
|
+
onHideUnderlay?: () => void;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
touchSoundDisabled?: boolean;
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
+
touchSoundDisabled?: boolean;
|
|
7
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|