@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.
Files changed (100) hide show
  1. package/README.md +15 -14
  2. package/build/components/activity-indicator-props.d.ts +4 -0
  3. package/build/components/{button.d.ts → button-props.d.ts} +0 -2
  4. package/build/components/button-props.js +1 -0
  5. package/build/components/flat-list/index.js +3 -3
  6. package/build/components/image/image-props.d.ts +4 -0
  7. package/build/components/image/image-props.js +1 -0
  8. package/build/components/image-background-props.d.ts +9 -0
  9. package/build/components/image-background-props.js +1 -0
  10. package/build/components/input-accessory-view-props.d.ts +10 -0
  11. package/build/components/input-accessory-view-props.js +1 -0
  12. package/build/components/keyboard-avoiding-view/index.js +10 -5
  13. package/build/components/modal/index.js +3 -3
  14. package/build/components/pressable/{index.d.ts → pressable-props.d.ts} +6 -5
  15. package/build/components/pressable/pressable-props.js +1 -0
  16. package/build/components/{refresh-control/index.d.ts → refresh-control-props.d.ts} +3 -3
  17. package/build/components/refresh-control-props.js +1 -0
  18. package/build/components/safe-area-view-props.d.ts +11 -0
  19. package/build/components/safe-area-view-props.js +1 -0
  20. package/build/components/scroll-view/{shared.d.ts → scroll-view-props.d.ts} +4 -26
  21. package/build/components/scroll-view/scroll-view-props.js +1 -0
  22. package/build/components/switch/switch-props.d.ts +4 -0
  23. package/build/components/switch/switch-props.js +1 -0
  24. package/build/components/text-input/text-input-props.d.ts +4 -0
  25. package/build/components/text-input/text-input-props.js +1 -0
  26. package/build/components/touchable/touchable-props.d.ts +19 -0
  27. package/build/components/touchable/touchable-props.js +1 -0
  28. package/build/components/touchable-native-feedback/touchable-native-feedback-props.d.ts +9 -0
  29. package/build/components/touchable-native-feedback/touchable-native-feedback-props.js +1 -0
  30. package/build/components/touchable-without-feedback/touchable-without-feedback-props.d.ts +7 -0
  31. package/build/components/touchable-without-feedback/touchable-without-feedback-props.js +1 -0
  32. package/build/components/virtualized-list/index.js +90 -41
  33. package/build/components.d.ts +1 -2
  34. package/build/components.js +5 -19
  35. package/build/create-portal/index.js +1 -1
  36. package/build/create-tunnel/index.js +1 -1
  37. package/build/descriptor-to-react/index.js +1 -1
  38. package/build/host-config.js +23 -12
  39. package/build/index.d.ts +23 -28
  40. package/build/index.js +14 -14
  41. package/build/jsx-dev-runtime.d.ts +3 -0
  42. package/build/jsx-dev-runtime.js +10 -0
  43. package/build/jsx-namespace.type-check.d.ts +1 -0
  44. package/build/jsx-namespace.type-check.js +7 -0
  45. package/build/jsx-runtime.d.ts +62 -0
  46. package/build/jsx-runtime.js +1 -0
  47. package/build/modules/animated/index.d.ts +29 -20
  48. package/build/modules/animated/index.js +16 -22
  49. package/build/modules/image/index.d.ts +3 -0
  50. package/build/modules/image/index.js +14 -0
  51. package/build/register.d.ts +1 -0
  52. package/build/register.js +15 -0
  53. package/metro-css-parser.cjs +2 -1
  54. package/package.json +12 -8
  55. package/build/components/activity-indicator/index.android.d.ts +0 -3
  56. package/build/components/activity-indicator/index.android.js +0 -17
  57. package/build/components/activity-indicator/index.d.ts +0 -1
  58. package/build/components/activity-indicator/index.ios.d.ts +0 -3
  59. package/build/components/activity-indicator/index.ios.js +0 -16
  60. package/build/components/activity-indicator/index.js +0 -4
  61. package/build/components/activity-indicator/shared.d.ts +0 -6
  62. package/build/components/activity-indicator/shared.js +0 -22
  63. package/build/components/button.js +0 -42
  64. package/build/components/image/index.d.ts +0 -9
  65. package/build/components/image/index.js +0 -28
  66. package/build/components/image-background/index.d.ts +0 -10
  67. package/build/components/image-background/index.js +0 -46
  68. package/build/components/input-accessory-view/index.d.ts +0 -11
  69. package/build/components/input-accessory-view/index.js +0 -19
  70. package/build/components/pressable/index.js +0 -112
  71. package/build/components/refresh-control/index.js +0 -21
  72. package/build/components/safe-area-view/index.d.ts +0 -12
  73. package/build/components/safe-area-view/index.js +0 -18
  74. package/build/components/scroll-view/index.android.d.ts +0 -3
  75. package/build/components/scroll-view/index.android.js +0 -61
  76. package/build/components/scroll-view/index.d.ts +0 -1
  77. package/build/components/scroll-view/index.ios.d.ts +0 -3
  78. package/build/components/scroll-view/index.ios.js +0 -29
  79. package/build/components/scroll-view/index.js +0 -4
  80. package/build/components/scroll-view/shared.js +0 -240
  81. package/build/components/scroll-view/sticky-header.d.ts +0 -18
  82. package/build/components/scroll-view/sticky-header.js +0 -227
  83. package/build/components/switch/index.android.d.ts +0 -3
  84. package/build/components/switch/index.android.js +0 -18
  85. package/build/components/switch/index.d.ts +0 -1
  86. package/build/components/switch/index.ios.d.ts +0 -3
  87. package/build/components/switch/index.ios.js +0 -16
  88. package/build/components/switch/index.js +0 -6
  89. package/build/components/switch/shared.d.ts +0 -9
  90. package/build/components/switch/shared.js +0 -60
  91. package/build/components/text-input/index.d.ts +0 -50
  92. package/build/components/text-input/index.js +0 -180
  93. package/build/components/touchable/index.d.ts +0 -22
  94. package/build/components/touchable/index.js +0 -165
  95. package/build/components/touchable-native-feedback/index.d.ts +0 -18
  96. package/build/components/touchable-native-feedback/index.js +0 -32
  97. package/build/jsx.d.ts +0 -18
  98. package/build/state-style.d.ts +0 -1
  99. package/build/state-style.js +0 -13
  100. /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. There's no `create-symbiote` scaffolder
31
- yet, so the Metro config and the `index.js` entry seam below come from
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 — 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
  ```
@@ -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** — `View` · `Text` · `Image` · `ImageBackground` · `ScrollView` · `TextInput` ·
106
- `Pressable` · `Touchable*` · `Button` · `Switch` · `Modal` · `ActivityIndicator` ·
107
- `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`.
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,4 @@
1
+ import type { IActivityIndicatorProps as IActivityIndicatorBaseProps } from '@symbiote-native/components';
2
+ export type IActivityIndicatorProps = IActivityIndicatorBaseProps & {
3
+ className?: string;
4
+ };
@@ -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).
@@ -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,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 {};
@@ -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 { View } from '../../components.js';
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(View, { style: layout.innerStyle }, children));
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
- // `symbiote-view` routes the base layout event at runtime; widen the props through
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(View, wrapperProps);
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 (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,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 { 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,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,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
+ };