@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.
Files changed (102) hide show
  1. package/README.md +32 -16
  2. package/build/components/activity-indicator-props.d.ts +4 -0
  3. package/build/components/activity-indicator-props.js +1 -0
  4. package/build/components/{button.d.ts → button-props.d.ts} +0 -2
  5. package/build/components/button-props.js +1 -0
  6. package/build/components/flat-list/index.js +2 -2
  7. package/build/components/image/image-props.d.ts +4 -0
  8. package/build/components/image/image-props.js +1 -0
  9. package/build/components/image-background-props.d.ts +9 -0
  10. package/build/components/image-background-props.js +1 -0
  11. package/build/components/input-accessory-view-props.d.ts +10 -0
  12. package/build/components/input-accessory-view-props.js +1 -0
  13. package/build/components/keyboard-avoiding-view/index.js +4 -4
  14. package/build/components/modal/index.js +3 -3
  15. package/build/components/pressable/{index.d.ts → pressable-props.d.ts} +4 -4
  16. package/build/components/pressable/pressable-props.js +1 -0
  17. package/build/components/{refresh-control/index.d.ts → refresh-control-props.d.ts} +3 -3
  18. package/build/components/refresh-control-props.js +1 -0
  19. package/build/components/safe-area-view-props.d.ts +11 -0
  20. package/build/components/safe-area-view-props.js +1 -0
  21. package/build/components/scroll-view/{shared.d.ts → scroll-view-props.d.ts} +4 -26
  22. package/build/components/scroll-view/scroll-view-props.js +1 -0
  23. package/build/components/switch/switch-props.d.ts +4 -0
  24. package/build/components/switch/switch-props.js +1 -0
  25. package/build/components/text-input/text-input-props.d.ts +4 -0
  26. package/build/components/text-input/text-input-props.js +1 -0
  27. package/build/components/touchable/touchable-props.d.ts +17 -0
  28. package/build/components/touchable/touchable-props.js +1 -0
  29. package/build/components/touchable-native-feedback/touchable-native-feedback-props.d.ts +8 -0
  30. package/build/components/touchable-native-feedback/touchable-native-feedback-props.js +1 -0
  31. package/build/components/touchable-without-feedback/touchable-without-feedback-props.d.ts +6 -0
  32. package/build/components/touchable-without-feedback/touchable-without-feedback-props.js +1 -0
  33. package/build/components/virtualized-list/index.js +83 -38
  34. package/build/components.d.ts +3 -4
  35. package/build/components.js +5 -17
  36. package/build/create-portal/index.js +1 -1
  37. package/build/create-tunnel/index.js +1 -1
  38. package/build/descriptor-to-react/index.js +1 -1
  39. package/build/host-config.d.ts +2 -2
  40. package/build/host-config.js +51 -10
  41. package/build/host-instance.js +1 -1
  42. package/build/index.d.ts +23 -27
  43. package/build/index.js +14 -14
  44. package/build/jsx-dev-runtime.d.ts +3 -0
  45. package/build/jsx-dev-runtime.js +10 -0
  46. package/build/jsx-namespace.type-check.d.ts +1 -0
  47. package/build/jsx-namespace.type-check.js +7 -0
  48. package/build/jsx-runtime.d.ts +62 -0
  49. package/build/jsx-runtime.js +1 -0
  50. package/build/modules/animated/create-animated-component.d.ts +2 -1
  51. package/build/modules/animated/create-animated-component.js +7 -1
  52. package/build/modules/animated/index.d.ts +0 -1
  53. package/build/modules/animated/index.js +16 -22
  54. package/build/modules/image/index.d.ts +3 -0
  55. package/build/modules/image/index.js +14 -0
  56. package/build/register.d.ts +1 -0
  57. package/build/register.js +15 -0
  58. package/build/render.js +2 -4
  59. package/metro-css-parser.cjs +2 -1
  60. package/package.json +28 -8
  61. package/build/components/activity-indicator/index.android.d.ts +0 -3
  62. package/build/components/activity-indicator/index.android.js +0 -17
  63. package/build/components/activity-indicator/index.d.ts +0 -1
  64. package/build/components/activity-indicator/index.ios.d.ts +0 -3
  65. package/build/components/activity-indicator/index.ios.js +0 -16
  66. package/build/components/activity-indicator/index.js +0 -4
  67. package/build/components/activity-indicator/shared.d.ts +0 -6
  68. package/build/components/activity-indicator/shared.js +0 -22
  69. package/build/components/button.js +0 -42
  70. package/build/components/image/index.d.ts +0 -9
  71. package/build/components/image/index.js +0 -28
  72. package/build/components/image-background/index.d.ts +0 -10
  73. package/build/components/image-background/index.js +0 -46
  74. package/build/components/input-accessory-view/index.d.ts +0 -11
  75. package/build/components/input-accessory-view/index.js +0 -19
  76. package/build/components/pressable/index.js +0 -100
  77. package/build/components/refresh-control/index.js +0 -21
  78. package/build/components/safe-area-view/index.d.ts +0 -11
  79. package/build/components/safe-area-view/index.js +0 -18
  80. package/build/components/scroll-view/index.android.d.ts +0 -3
  81. package/build/components/scroll-view/index.android.js +0 -61
  82. package/build/components/scroll-view/index.d.ts +0 -1
  83. package/build/components/scroll-view/index.ios.d.ts +0 -3
  84. package/build/components/scroll-view/index.ios.js +0 -29
  85. package/build/components/scroll-view/index.js +0 -4
  86. package/build/components/scroll-view/shared.js +0 -240
  87. package/build/components/scroll-view/sticky-header.d.ts +0 -18
  88. package/build/components/scroll-view/sticky-header.js +0 -227
  89. package/build/components/switch/index.android.d.ts +0 -3
  90. package/build/components/switch/index.android.js +0 -18
  91. package/build/components/switch/index.d.ts +0 -1
  92. package/build/components/switch/index.ios.d.ts +0 -3
  93. package/build/components/switch/index.ios.js +0 -16
  94. package/build/components/switch/index.js +0 -6
  95. package/build/components/switch/shared.d.ts +0 -9
  96. package/build/components/switch/shared.js +0 -60
  97. package/build/components/text-input/index.d.ts +0 -50
  98. package/build/components/text-input/index.js +0 -172
  99. package/build/components/touchable/index.d.ts +0 -22
  100. package/build/components/touchable/index.js +0 -165
  101. package/build/components/touchable-native-feedback/index.d.ts +0 -18
  102. 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 — it imports primitives from `@symbiote-native/react`, not `react-native`:
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
- <View style={{ padding: 24 }}>
48
- <Text>Taps: {count}</Text>
49
- <Pressable onPress={() => setCount(c => c + 1)}>
50
- <Text>Tap me</Text>
51
- </Pressable>
52
- </View>
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 native entry registers a low-level _runnable_ instead of a React component: RN's Fabric host
58
- calls it with the surface's `rootTag`, and the renderer takes over from there — `nativeFabric-
59
- UIManager` is driven directly, RN's own renderer never runs.
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
- The runnable example is [`examples/react`](../../examples/react) — a stock RN 0.86 app whose full
81
- canary ([`App.tsx`](../../examples/react/App.tsx)) exercises every block of the surface below.
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** — `View` · `Text` · `Image` · `ImageBackground` · `ScrollView` · `TextInput` ·
91
- `Pressable` · `Touchable*` · `Button` · `Switch` · `Modal` · `ActivityIndicator` ·
92
- `SafeAreaView` · `RefreshControl` · `FlatList` · `SectionList` · `VirtualizedList`.
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,4 @@
1
+ import type { IActivityIndicatorProps as IActivityIndicatorBaseProps } from '@symbiote-native/components';
2
+ export type IActivityIndicatorProps = IActivityIndicatorBaseProps & {
3
+ className?: string;
4
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,4 @@
1
- import { type FC } from 'react';
2
1
  import type { IButtonProps as IButtonBaseProps } from '@symbiote-native/components';
3
2
  export type IButtonProps = IButtonBaseProps & {
4
3
  className?: string;
5
4
  };
6
- export declare const Button: FC<IButtonProps>;
@@ -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('symbiote-view', { key, style: { flex: 1 } }, renderItem({ item, index, separators: info.separators }));
51
+ return createElement('view', { key, style: { flex: 1 } }, renderItem({ item, index, separators: info.separators }));
52
52
  });
53
- return createElement('symbiote-view', { style: rowStyle }, ...cells);
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,4 @@
1
+ import type { IImageProps as IImageBaseProps } from '@symbiote-native/components';
2
+ export type IImageProps = IImageBaseProps & {
3
+ className?: string;
4
+ };
@@ -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 { View } from '../../components.js';
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(View, { style: layout.innerStyle }, children));
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
- // `symbiote-view` routes the base layout event at runtime; widen the props through
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(View, wrapperProps);
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 (symbiote-modal), so it folds aria/role here; the resolved fields
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 symbiote-modal host instead (renderModal composes
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 = symbiote-modal > [container]; the user children nest UNDER the container View, never as
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 { type FC, type ReactNode } from 'react';
2
- import { type IPressState, type IPressHandler, type IRectOffset, type IPressableAndroidRippleConfig } from '@symbiote-native/components';
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 { type FC, type ReactNode } from 'react';
2
- import { type IAccessibilityProps, type IAriaProps } from '@symbiote-native/components';
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 { type ReactElement, type ReactNode, type RefObject } from 'react';
2
- import { AnimatedValue, type ISymbioteEvent, type ISymbioteNode } from '@symbiote-native/engine';
3
- import { type ISymbioteIntrinsic } from '@symbiote-native/components';
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?: ILayoutHandler;
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,4 @@
1
+ import type { ISwitchProps as ISwitchBaseProps } from '@symbiote-native/components';
2
+ export type ISwitchProps = ISwitchBaseProps & {
3
+ className?: string;
4
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { ITextInputProps as ITextInputBaseProps } from '@symbiote-native/components';
2
+ export type ITextInputProps = ITextInputBaseProps & {
3
+ className?: string;
4
+ };
@@ -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,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
+ };