first commit

This commit is contained in:
2026-03-10 16:18:05 +00:00
commit 11f9c069b5
31635 changed files with 3187747 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
'use client';
import * as React from 'react';
export default /*#__PURE__*/React.createContext(undefined);
//# sourceMappingURL=TransitionProgressContext.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","createContext","undefined"],"sourceRoot":"../../src","sources":["TransitionProgressContext.tsx"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,KAAKA,KAAK,MAAM,OAAO;AAS9B,4BAAeA,KAAK,CAACC,aAAa,CAChCC,SACF,CAAC","ignoreList":[]}

View File

@@ -0,0 +1,42 @@
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import * as React from 'react';
import { Platform } from 'react-native';
// @ts-expect-error importing private component
import AppContainer from 'react-native/Libraries/ReactNative/AppContainer';
import ScreenContentWrapper from './ScreenContentWrapper';
/**
* This view must *not* be flattened.
* See https://github.com/software-mansion/react-native-screens/pull/1825
* for detailed explanation.
*/
let DebugContainer = ({
contentStyle,
style,
...rest
}) => {
return /*#__PURE__*/React.createElement(ScreenContentWrapper, _extends({
style: [style, contentStyle]
}, rest));
};
if (process.env.NODE_ENV !== 'production') {
DebugContainer = props => {
const {
contentStyle,
stackPresentation,
style,
...rest
} = props;
const content = /*#__PURE__*/React.createElement(ScreenContentWrapper, _extends({
style: [style, contentStyle]
}, rest));
if (Platform.OS === 'ios' && stackPresentation !== 'push' && stackPresentation !== 'formSheet') {
// This is necessary for LogBox
return /*#__PURE__*/React.createElement(AppContainer, null, content);
}
return content;
};
DebugContainer.displayName = 'DebugContainer';
}
export default DebugContainer;
//# sourceMappingURL=DebugContainer.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","Platform","AppContainer","ScreenContentWrapper","DebugContainer","contentStyle","style","rest","createElement","_extends","process","env","NODE_ENV","props","stackPresentation","content","OS","displayName"],"sourceRoot":"../../../src","sources":["components/DebugContainer.tsx"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAA8C,cAAc;AAC7E;;AAEA,OAAOC,YAAY,MAAM,iDAAiD;AAC1E,OAAOC,oBAAoB,MAAM,wBAAwB;AASzD;AACA;AACA;AACA;AACA;AACA,IAAIC,cAAwC,GAAGA,CAAC;EAC9CC,YAAY;EACZC,KAAK;EACL,GAAGC;AACL,CAAC,KAAK;EACJ,oBAAOP,KAAA,CAAAQ,aAAA,CAACL,oBAAoB,EAAAM,QAAA;IAACH,KAAK,EAAE,CAACA,KAAK,EAAED,YAAY;EAAE,GAAKE,IAAI,CAAG,CAAC;AACzE,CAAC;AAED,IAAIG,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;EACzCR,cAAc,GAAIS,KAAqB,IAAK;IAC1C,MAAM;MAAER,YAAY;MAAES,iBAAiB;MAAER,KAAK;MAAE,GAAGC;IAAK,CAAC,GAAGM,KAAK;IAEjE,MAAME,OAAO,gBACXf,KAAA,CAAAQ,aAAA,CAACL,oBAAoB,EAAAM,QAAA;MAACH,KAAK,EAAE,CAACA,KAAK,EAAED,YAAY;IAAE,GAAKE,IAAI,CAAG,CAChE;IAED,IACEN,QAAQ,CAACe,EAAE,KAAK,KAAK,IACrBF,iBAAiB,KAAK,MAAM,IAC5BA,iBAAiB,KAAK,WAAW,EACjC;MACA;MACA,oBAAOd,KAAA,CAAAQ,aAAA,CAACN,YAAY,QAAEa,OAAsB,CAAC;IAC/C;IAEA,OAAOA,OAAO;EAChB,CAAC;EAEDX,cAAc,CAACa,WAAW,GAAG,gBAAgB;AAC/C;AAEA,eAAeb,cAAc","ignoreList":[]}

View File

@@ -0,0 +1,6 @@
import * as React from 'react';
import ScreenContentWrapper from './ScreenContentWrapper';
export default function DebugContainer(props) {
return /*#__PURE__*/React.createElement(ScreenContentWrapper, props);
}
//# sourceMappingURL=DebugContainer.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","ScreenContentWrapper","DebugContainer","props","createElement"],"sourceRoot":"../../../src","sources":["components/DebugContainer.web.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAOC,oBAAoB,MAAM,wBAAwB;AAEzD,eAAe,SAASC,cAAcA,CAACC,KAAgB,EAAE;EACvD,oBAAOH,KAAA,CAAAI,aAAA,CAACH,oBAAoB,EAAKE,KAAQ,CAAC;AAC5C","ignoreList":[]}

View File

@@ -0,0 +1,25 @@
import React from 'react';
import { Platform, StyleSheet, View, useWindowDimensions } from 'react-native';
// Native components
import FullWindowOverlayNativeComponent from '../fabric/FullWindowOverlayNativeComponent';
const NativeFullWindowOverlay = FullWindowOverlayNativeComponent;
function FullWindowOverlay(props) {
const {
width,
height
} = useWindowDimensions();
if (Platform.OS !== 'ios') {
console.warn('Using FullWindowOverlay is only valid on iOS devices.');
return /*#__PURE__*/React.createElement(View, props);
}
return /*#__PURE__*/React.createElement(NativeFullWindowOverlay, {
style: [StyleSheet.absoluteFill, {
width,
height
}],
accessibilityContainerViewIsModal: props.unstable_accessibilityContainerViewIsModal
}, props.children);
}
export default FullWindowOverlay;
//# sourceMappingURL=FullWindowOverlay.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","Platform","StyleSheet","View","useWindowDimensions","FullWindowOverlayNativeComponent","NativeFullWindowOverlay","FullWindowOverlay","props","width","height","OS","console","warn","createElement","style","absoluteFill","accessibilityContainerViewIsModal","unstable_accessibilityContainerViewIsModal","children"],"sourceRoot":"../../../src","sources":["components/FullWindowOverlay.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAwC,OAAO;AAC3D,SACEC,QAAQ,EAERC,UAAU,EACVC,IAAI,EAEJC,mBAAmB,QACd,cAAc;;AAErB;AACA,OAAOC,gCAAgC,MAAM,4CAA4C;AAGzF,MAAMC,uBAKL,GAAGD,gCAAuC;AAO3C,SAASE,iBAAiBA,CAACC,KAA6B,EAAE;EACxD,MAAM;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGN,mBAAmB,CAAC,CAAC;EAC/C,IAAIH,QAAQ,CAACU,EAAE,KAAK,KAAK,EAAE;IACzBC,OAAO,CAACC,IAAI,CAAC,uDAAuD,CAAC;IACrE,oBAAOb,KAAA,CAAAc,aAAA,CAACX,IAAI,EAAKK,KAAQ,CAAC;EAC5B;EACA,oBACER,KAAA,CAAAc,aAAA,CAACR,uBAAuB;IACtBS,KAAK,EAAE,CAACb,UAAU,CAACc,YAAY,EAAE;MAAEP,KAAK;MAAEC;IAAO,CAAC,CAAE;IACpDO,iCAAiC,EAC/BT,KAAK,CAACU;EACP,GACAV,KAAK,CAACW,QACgB,CAAC;AAE9B;AAEA,eAAeZ,iBAAiB","ignoreList":[]}

View File

@@ -0,0 +1,3 @@
import { View } from 'react-native';
export default View;
//# sourceMappingURL=FullWindowOverlay.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View"],"sourceRoot":"../../../src","sources":["components/FullWindowOverlay.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAGnC,eAAeA,IAAI","ignoreList":[]}

View File

@@ -0,0 +1,225 @@
'use client';
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { Animated, Platform } from 'react-native';
import TransitionProgressContext from '../TransitionProgressContext';
import DelayedFreeze from './helpers/DelayedFreeze';
import { freezeEnabled, isNativePlatformSupported, screensEnabled } from '../core';
// Native components
import ScreenNativeComponent from '../fabric/ScreenNativeComponent';
import ModalScreenNativeComponent from '../fabric/ModalScreenNativeComponent';
import { usePrevious } from './helpers/usePrevious';
import { SHEET_DIMMED_ALWAYS, resolveSheetAllowedDetents, resolveSheetInitialDetentIndex, resolveSheetLargestUndimmedDetent } from './helpers/sheet';
import { parseBooleanToOptionalBooleanNativeProp } from '../utils';
import featureFlags from '../flags';
const AnimatedNativeScreen = Animated.createAnimatedComponent(ScreenNativeComponent);
const AnimatedNativeModalScreen = Animated.createAnimatedComponent(ModalScreenNativeComponent);
// Incomplete type, all accessible properties available at:
// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
export const InnerScreen = /*#__PURE__*/React.forwardRef(function InnerScreen(props, ref) {
const innerRef = React.useRef(null);
React.useImperativeHandle(ref, () => innerRef.current, []);
const prevActivityState = usePrevious(props.activityState);
const setRef = ref => {
innerRef.current = ref;
props.onComponentRef?.(ref);
};
const closing = React.useRef(new Animated.Value(0)).current;
const progress = React.useRef(new Animated.Value(0)).current;
const goingForward = React.useRef(new Animated.Value(0)).current;
const {
enabled = screensEnabled(),
freezeOnBlur = freezeEnabled(),
shouldFreeze,
...rest
} = props;
// To maintain default behavior of formSheet stack presentation style and to have reasonable
// defaults for new medium-detent iOS API we need to set defaults here
const {
// formSheet presentation related props
sheetAllowedDetents = [1.0],
sheetLargestUndimmedDetentIndex = SHEET_DIMMED_ALWAYS,
sheetGrabberVisible = false,
sheetCornerRadius = -1.0,
sheetExpandsWhenScrolledToEdge = true,
sheetElevation = 24,
sheetInitialDetentIndex = 0,
sheetShouldOverflowTopInset = false,
sheetDefaultResizeAnimationEnabled = true,
// Other
screenId,
stackPresentation,
// Events for override
onAppear,
onDisappear,
onWillAppear,
onWillDisappear
} = rest;
if (enabled && isNativePlatformSupported) {
const resolvedSheetAllowedDetents = resolveSheetAllowedDetents(sheetAllowedDetents);
const resolvedSheetLargestUndimmedDetent = resolveSheetLargestUndimmedDetent(sheetLargestUndimmedDetentIndex, resolvedSheetAllowedDetents.length - 1);
const resolvedSheetInitialDetentIndex = resolveSheetInitialDetentIndex(sheetInitialDetentIndex, resolvedSheetAllowedDetents.length - 1);
// Due to how Yoga resolves layout, we need to have different components for modal nad non-modal screens (there is a need for different
// shadow nodes).
const shouldUseModalScreenComponent = Platform.select({
ios: !(stackPresentation === undefined || stackPresentation === 'push' || stackPresentation === 'containedModal' || stackPresentation === 'containedTransparentModal'),
android: false,
default: false
});
const AnimatedScreen = shouldUseModalScreenComponent ? AnimatedNativeModalScreen : AnimatedNativeScreen;
let {
// Filter out active prop in this case because it is unused and
// can cause problems depending on react-native version:
// https://github.com/react-navigation/react-navigation/issues/4886
active,
activityState,
children,
isNativeStack,
fullScreenSwipeEnabled,
gestureResponseDistance,
scrollEdgeEffects,
onGestureCancel,
style,
...props
} = rest;
if (active !== undefined && activityState === undefined) {
console.warn('It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens');
activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition
}
if (isNativeStack && prevActivityState !== undefined && activityState !== undefined) {
if (prevActivityState > activityState) {
throw new Error('[RNScreens] activityState cannot be decreased in NativeStack');
}
}
const handleRef = ref => {
// Workaround is necessary to prevent React Native from hiding frozen screens.
// See this PR: https://github.com/grahammendick/navigation/pull/860
if (ref?.viewConfig?.validAttributes?.style) {
ref.viewConfig.validAttributes.style = {
...ref.viewConfig.validAttributes.style,
display: null
};
} else if (ref?._viewConfig?.validAttributes?.style) {
ref._viewConfig.validAttributes.style = {
...ref._viewConfig.validAttributes.style,
display: null
};
} else if (ref?.__viewConfig?.validAttributes?.style) {
ref.__viewConfig.validAttributes.style = {
...ref.__viewConfig.validAttributes.style,
display: null
};
}
setRef(ref);
};
const freeze = freezeOnBlur && (shouldFreeze !== undefined ? shouldFreeze : activityState === 0);
return /*#__PURE__*/React.createElement(DelayedFreeze, {
freeze: freeze
}, /*#__PURE__*/React.createElement(AnimatedScreen, _extends({}, props, {
/**
* This messy override is to conform NativeProps used by codegen and
* our Public API. To see reasoning go to this PR:
* https://github.com/software-mansion/react-native-screens/pull/2423#discussion_r1810616995
*/
onAppear: onAppear,
onDisappear: onDisappear,
onWillAppear: onWillAppear,
onWillDisappear: onWillDisappear,
onGestureCancel: onGestureCancel ?? (() => {
// for internal use
})
//
// Hierarchy of screens is handled on the native side and setting zIndex value causes this issue:
// https://github.com/software-mansion/react-native-screens/issues/2345
// With below change of zIndex, we force RN diffing mechanism to NOT include detaching and attaching mutation in one transaction.
// Detailed information can be found here https://github.com/software-mansion/react-native-screens/pull/2351
,
style: [style, {
zIndex: undefined
}],
activityState: activityState,
screenId: screenId,
sheetAllowedDetents: resolvedSheetAllowedDetents,
sheetLargestUndimmedDetent: resolvedSheetLargestUndimmedDetent,
sheetElevation: sheetElevation,
sheetShouldOverflowTopInset: sheetShouldOverflowTopInset,
sheetDefaultResizeAnimationEnabled: sheetDefaultResizeAnimationEnabled,
sheetGrabberVisible: sheetGrabberVisible,
sheetCornerRadius: sheetCornerRadius,
sheetExpandsWhenScrolledToEdge: sheetExpandsWhenScrolledToEdge,
sheetInitialDetent: resolvedSheetInitialDetentIndex,
fullScreenSwipeEnabled: parseBooleanToOptionalBooleanNativeProp(fullScreenSwipeEnabled),
gestureResponseDistance: {
start: gestureResponseDistance?.start ?? -1,
end: gestureResponseDistance?.end ?? -1,
top: gestureResponseDistance?.top ?? -1,
bottom: gestureResponseDistance?.bottom ?? -1
}
// This prevents showing blank screen when navigating between multiple screens with freezing
// https://github.com/software-mansion/react-native-screens/pull/1208
,
ref: handleRef,
onTransitionProgress: !isNativeStack ? undefined : Animated.event([{
nativeEvent: {
progress,
closing,
goingForward
}
}], {
useNativeDriver: true
}),
bottomScrollEdgeEffect: scrollEdgeEffects?.bottom,
leftScrollEdgeEffect: scrollEdgeEffects?.left,
rightScrollEdgeEffect: scrollEdgeEffects?.right,
topScrollEdgeEffect: scrollEdgeEffects?.top,
synchronousShadowStateUpdatesEnabled: featureFlags.experiment.synchronousScreenUpdatesEnabled,
androidResetScreenShadowStateOnOrientationChangeEnabled: featureFlags.experiment.androidResetScreenShadowStateOnOrientationChangeEnabled
}), !isNativeStack ?
// see comment of this prop in types.tsx for information why it is needed
children : /*#__PURE__*/React.createElement(TransitionProgressContext.Provider, {
value: {
progress,
closing,
goingForward
}
}, children)));
} else {
// same reason as above
let {
active,
activityState,
style,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onComponentRef,
...props
} = rest;
if (active !== undefined && activityState === undefined) {
activityState = active !== 0 ? 2 : 0;
}
return /*#__PURE__*/React.createElement(Animated.View, _extends({
style: [style, {
display: activityState !== 0 ? 'flex' : 'none'
}],
ref: setRef
}, props));
}
});
// context to be used when the user wants to use enhanced implementation
// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)
export const ScreenContext = /*#__PURE__*/React.createContext(InnerScreen);
const Screen = /*#__PURE__*/React.forwardRef((props, ref) => {
const ScreenWrapper = React.useContext(ScreenContext) || InnerScreen;
return /*#__PURE__*/React.createElement(ScreenWrapper, _extends({}, props, {
ref: ref
}));
});
Screen.displayName = 'Screen';
export default Screen;
//# sourceMappingURL=Screen.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,40 @@
'use client';
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import { Animated, View } from 'react-native';
import React from 'react';
import { screensEnabled } from '../core';
export const InnerScreen = View;
// We're using class component here because of the error from reanimated:
// createAnimatedComponent` does not support stateless functional components; use a class component instead.
// NOTE: React Server Components do not support class components.
export class NativeScreen extends React.Component {
render() {
let {
active,
activityState,
style,
enabled = screensEnabled(),
...rest
} = this.props;
if (enabled) {
if (active !== undefined && activityState === undefined) {
activityState = active !== 0 ? 2 : 0; // change taken from index.native.tsx
}
return /*#__PURE__*/React.createElement(View
// @ts-expect-error: hidden exists on web, but not in React Native
, _extends({
hidden: activityState === 0,
style: [style, {
display: activityState !== 0 ? 'flex' : 'none'
}]
}, rest));
}
return /*#__PURE__*/React.createElement(View, rest);
}
}
const Screen = Animated.createAnimatedComponent(NativeScreen);
export const ScreenContext = /*#__PURE__*/React.createContext(Screen);
export default Screen;
//# sourceMappingURL=Screen.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","Animated","View","React","screensEnabled","InnerScreen","NativeScreen","Component","render","active","activityState","style","enabled","rest","props","undefined","createElement","hidden","display","Screen","createAnimatedComponent","ScreenContext","createContext"],"sourceRoot":"../../../src","sources":["components/Screen.web.tsx"],"mappings":"AAAA,YAAY;;AAAC,SAAAA,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,CAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAL,CAAA,CAAAK,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAL,CAAA,KAAAJ,QAAA,CAAAY,KAAA,OAAAN,SAAA;AAGb,SAASO,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC7C,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,cAAc,QAAQ,SAAS;AAExC,OAAO,MAAMC,WAAW,GAAGH,IAAI;;AAE/B;AACA;AACA;AACA,OAAO,MAAMI,YAAY,SAASH,KAAK,CAACI,SAAS,CAAc;EAC7DC,MAAMA,CAAA,EAAsB;IAC1B,IAAI;MACFC,MAAM;MACNC,aAAa;MACbC,KAAK;MACLC,OAAO,GAAGR,cAAc,CAAC,CAAC;MAC1B,GAAGS;IACL,CAAC,GAAG,IAAI,CAACC,KAAK;IAEd,IAAIF,OAAO,EAAE;MACX,IAAIH,MAAM,KAAKM,SAAS,IAAIL,aAAa,KAAKK,SAAS,EAAE;QACvDL,aAAa,GAAGD,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;MACxC;MACA,oBACEN,KAAA,CAAAa,aAAA,CAACd;MACC;MAAA,EAAAd,QAAA;QACA6B,MAAM,EAAEP,aAAa,KAAK,CAAE;QAC5BC,KAAK,EAAE,CAACA,KAAK,EAAE;UAAEO,OAAO,EAAER,aAAa,KAAK,CAAC,GAAG,MAAM,GAAG;QAAO,CAAC;MAAE,GAC/DG,IAAI,CACT,CAAC;IAEN;IAEA,oBAAOV,KAAA,CAAAa,aAAA,CAACd,IAAI,EAAKW,IAAO,CAAC;EAC3B;AACF;AAEA,MAAMM,MAAM,GAAGlB,QAAQ,CAACmB,uBAAuB,CAACd,YAAY,CAAC;AAE7D,OAAO,MAAMe,aAAa,gBAAGlB,KAAK,CAACmB,aAAa,CAACH,MAAM,CAAC;AAExD,eAAeA,MAAM","ignoreList":[]}

View File

@@ -0,0 +1,26 @@
'use client';
import { Platform, View } from 'react-native';
import React from 'react';
import { isNativePlatformSupported, screensEnabled } from '../core';
// Native components
import ScreenContainerNativeComponent from '../fabric/ScreenContainerNativeComponent';
import ScreenNavigationContainerNativeComponent from '../fabric/ScreenNavigationContainerNativeComponent';
function ScreenContainer(props) {
const {
enabled = screensEnabled(),
hasTwoStates,
...rest
} = props;
if (enabled && isNativePlatformSupported) {
if (hasTwoStates) {
const ScreenNavigationContainer = Platform.OS === 'ios' ? ScreenNavigationContainerNativeComponent : ScreenContainerNativeComponent;
return /*#__PURE__*/React.createElement(ScreenNavigationContainer, rest);
}
return /*#__PURE__*/React.createElement(ScreenContainerNativeComponent, rest);
}
return /*#__PURE__*/React.createElement(View, rest);
}
export default ScreenContainer;
//# sourceMappingURL=ScreenContainer.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["Platform","View","React","isNativePlatformSupported","screensEnabled","ScreenContainerNativeComponent","ScreenNavigationContainerNativeComponent","ScreenContainer","props","enabled","hasTwoStates","rest","ScreenNavigationContainer","OS","createElement"],"sourceRoot":"../../../src","sources":["components/ScreenContainer.tsx"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC7C,OAAOC,KAAK,MAAM,OAAO;AAEzB,SAASC,yBAAyB,EAAEC,cAAc,QAAQ,SAAS;;AAEnE;AACA,OAAOC,8BAA8B,MAAM,0CAA0C;AACrF,OAAOC,wCAAwC,MAAM,oDAAoD;AAEzG,SAASC,eAAeA,CAACC,KAA2B,EAAE;EACpD,MAAM;IAAEC,OAAO,GAAGL,cAAc,CAAC,CAAC;IAAEM,YAAY;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAEnE,IAAIC,OAAO,IAAIN,yBAAyB,EAAE;IACxC,IAAIO,YAAY,EAAE;MAChB,MAAME,yBAAyB,GAC7BZ,QAAQ,CAACa,EAAE,KAAK,KAAK,GACjBP,wCAAwC,GACxCD,8BAA8B;MACpC,oBAAOH,KAAA,CAAAY,aAAA,CAACF,yBAAyB,EAAKD,IAAO,CAAC;IAChD;IACA,oBAAOT,KAAA,CAAAY,aAAA,CAACT,8BAA8B,EAAKM,IAAO,CAAC;EACrD;EACA,oBAAOT,KAAA,CAAAY,aAAA,CAACb,IAAI,EAAKU,IAAO,CAAC;AAC3B;AAEA,eAAeJ,eAAe","ignoreList":[]}

View File

@@ -0,0 +1,4 @@
import { View } from 'react-native';
const ScreenContainer = View;
export default ScreenContainer;
//# sourceMappingURL=ScreenContainer.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","ScreenContainer"],"sourceRoot":"../../../src","sources":["components/ScreenContainer.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,eAAe,GAAGD,IAAI;AAE5B,eAAeC,eAAe","ignoreList":[]}

View File

@@ -0,0 +1,10 @@
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import ScreenContentWrapperNativeComponent from '../fabric/ScreenContentWrapperNativeComponent';
function ScreenContentWrapper(props) {
return /*#__PURE__*/React.createElement(ScreenContentWrapperNativeComponent, _extends({
collapsable: false
}, props));
}
export default ScreenContentWrapper;
//# sourceMappingURL=ScreenContentWrapper.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","ScreenContentWrapperNativeComponent","ScreenContentWrapper","props","createElement","_extends","collapsable"],"sourceRoot":"../../../src","sources":["components/ScreenContentWrapper.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,mCAAmC,MAAM,+CAA+C;AAE/F,SAASC,oBAAoBA,CAACC,KAAgB,EAAE;EAC9C,oBAAOH,KAAA,CAAAI,aAAA,CAACH,mCAAmC,EAAAI,QAAA;IAACC,WAAW,EAAE;EAAM,GAAKH,KAAK,CAAG,CAAC;AAC/E;AAEA,eAAeD,oBAAoB","ignoreList":[]}

View File

@@ -0,0 +1,4 @@
import { View } from 'react-native';
const ScreenContentWrapper = View;
export default ScreenContentWrapper;
//# sourceMappingURL=ScreenContentWrapper.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","ScreenContentWrapper"],"sourceRoot":"../../../src","sources":["components/ScreenContentWrapper.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,oBAAoB,GAAGD,IAAI;AAEjC,eAAeC,oBAAoB","ignoreList":[]}

View File

@@ -0,0 +1,4 @@
import { View } from 'react-native';
const ScreenContentWrapper = View;
export default ScreenContentWrapper;
//# sourceMappingURL=ScreenContentWrapper.windows.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","ScreenContentWrapper"],"sourceRoot":"../../../src","sources":["components/ScreenContentWrapper.windows.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,oBAAoB,GAAGD,IAAI;AAEjC,eAAeC,oBAAoB","ignoreList":[]}

View File

@@ -0,0 +1,18 @@
import React from 'react';
import ScreenFooterNativeComponent from '../fabric/ScreenFooterNativeComponent';
/**
* Unstable API
*/
function ScreenFooter(props) {
return /*#__PURE__*/React.createElement(ScreenFooterNativeComponent, props);
}
export function FooterComponent({
children
}) {
return /*#__PURE__*/React.createElement(ScreenFooter, {
collapsable: false
}, children);
}
export default ScreenFooter;
//# sourceMappingURL=ScreenFooter.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","ScreenFooterNativeComponent","ScreenFooter","props","createElement","FooterComponent","children","collapsable"],"sourceRoot":"../../../src","sources":["components/ScreenFooter.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,2BAA2B,MAAM,uCAAuC;;AAE/E;AACA;AACA;AACA,SAASC,YAAYA,CAACC,KAAgB,EAAE;EACtC,oBAAOH,KAAA,CAAAI,aAAA,CAACH,2BAA2B,EAAKE,KAAQ,CAAC;AACnD;AAMA,OAAO,SAASE,eAAeA,CAAC;EAAEC;AAAsB,CAAC,EAAE;EACzD,oBAAON,KAAA,CAAAI,aAAA,CAACF,YAAY;IAACK,WAAW,EAAE;EAAM,GAAED,QAAuB,CAAC;AACpE;AAEA,eAAeJ,YAAY","ignoreList":[]}

View File

@@ -0,0 +1,6 @@
import { View } from 'react-native';
const ScreenFooter = View;
const FooterComponent = View;
export default ScreenFooter;
export { FooterComponent };
//# sourceMappingURL=ScreenFooter.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","ScreenFooter","FooterComponent"],"sourceRoot":"../../../src","sources":["components/ScreenFooter.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,YAAY,GAAGD,IAAI;AACzB,MAAME,eAAe,GAAGF,IAAI;AAE5B,eAAeC,YAAY;AAC3B,SAASC,eAAe","ignoreList":[]}

View File

@@ -0,0 +1,6 @@
import { View } from 'react-native';
const ScreenFooter = View;
const FooterComponent = View;
export default ScreenFooter;
export { FooterComponent };
//# sourceMappingURL=ScreenFooter.windows.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","ScreenFooter","FooterComponent"],"sourceRoot":"../../../src","sources":["components/ScreenFooter.windows.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,YAAY,GAAGD,IAAI;AACzB,MAAME,eAAe,GAAGF,IAAI;AAE5B,eAAeC,YAAY;AAC3B,SAASC,eAAe","ignoreList":[]}

View File

@@ -0,0 +1,70 @@
'use client';
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { GHContext, RNSScreensRefContext } from '../contexts';
import warnOnce from 'warn-once';
// Native components
import ScreenStackNativeComponent from '../fabric/ScreenStackNativeComponent';
import featureFlags from '../flags';
const assertGHProvider = (ScreenGestureDetector, goBackGesture) => {
const isGestureDetectorProviderNotDetected = ScreenGestureDetector.name !== 'GHWrapper' && goBackGesture !== undefined;
warnOnce(isGestureDetectorProviderNotDetected, 'Cannot detect GestureDetectorProvider in a screen that uses `goBackGesture`. Make sure your navigator is wrapped in GestureDetectorProvider.');
};
const assertCustomScreenTransitionsProps = (screensRefs, currentScreenId, goBackGesture) => {
const isGestureDetectorNotConfiguredProperly = goBackGesture !== undefined && screensRefs === null && currentScreenId === undefined;
warnOnce(isGestureDetectorNotConfiguredProperly, 'Custom Screen Transition require screensRefs and currentScreenId to be provided.');
};
function ScreenStack(props) {
const {
goBackGesture,
screensRefs: passedScreenRefs,
// TODO: For compatibility with v5, remove once v5 is removed
currentScreenId,
transitionAnimation,
screenEdgeGesture,
onFinishTransitioning,
children,
...rest
} = props;
const screensRefs = React.useRef(passedScreenRefs?.current ?? {});
const ref = React.useRef(null);
const ScreenGestureDetector = React.useContext(GHContext);
const gestureDetectorBridge = React.useRef({
stackUseEffectCallback: _stackRef => {
// this method will be overriden in GestureDetector
}
});
React.useEffect(() => {
gestureDetectorBridge.current.stackUseEffectCallback(ref);
});
assertGHProvider(ScreenGestureDetector, goBackGesture);
assertCustomScreenTransitionsProps(screensRefs, currentScreenId, goBackGesture);
return /*#__PURE__*/React.createElement(RNSScreensRefContext.Provider, {
value: screensRefs
}, /*#__PURE__*/React.createElement(ScreenGestureDetector, {
gestureDetectorBridge: gestureDetectorBridge,
goBackGesture: goBackGesture,
transitionAnimation: transitionAnimation,
screenEdgeGesture: screenEdgeGesture ?? false,
screensRefs: screensRefs,
currentScreenId: currentScreenId
}, /*#__PURE__*/React.createElement(ScreenStackNativeComponent, _extends({}, rest, {
/**
* This flag is temporary, for ensuring that we're not breaking any basic flow just
* before Expo SDK release, we may consider removing it after releasing
* react-native-screens@4.21.
*/
iosPreventReattachmentOfDismissedScreens: featureFlags.experiment.iosPreventReattachmentOfDismissedScreens
/**
* This messy override is to conform NativeProps used by codegen and
* our Public API. To see reasoning go to this PR:
* https://github.com/software-mansion/react-native-screens/pull/2423#discussion_r1810616995
*/,
onFinishTransitioning: onFinishTransitioning,
ref: ref
}), children)));
}
export default ScreenStack;
//# sourceMappingURL=ScreenStack.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","React","GHContext","RNSScreensRefContext","warnOnce","ScreenStackNativeComponent","featureFlags","assertGHProvider","ScreenGestureDetector","goBackGesture","isGestureDetectorProviderNotDetected","name","undefined","assertCustomScreenTransitionsProps","screensRefs","currentScreenId","isGestureDetectorNotConfiguredProperly","ScreenStack","props","passedScreenRefs","transitionAnimation","screenEdgeGesture","onFinishTransitioning","children","rest","useRef","current","ref","useContext","gestureDetectorBridge","stackUseEffectCallback","_stackRef","useEffect","createElement","Provider","value","iosPreventReattachmentOfDismissedScreens","experiment"],"sourceRoot":"../../../src","sources":["components/ScreenStack.tsx"],"mappings":"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","ignoreList":[]}

View File

@@ -0,0 +1,4 @@
import { View } from 'react-native';
const ScreenStack = View;
export default ScreenStack;
//# sourceMappingURL=ScreenStack.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","ScreenStack"],"sourceRoot":"../../../src","sources":["components/ScreenStack.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,WAAW,GAAGD,IAAI;AAExB,eAAeC,WAAW","ignoreList":[]}

View File

@@ -0,0 +1,142 @@
'use client';
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { Image, Platform, StyleSheet } from 'react-native';
import featureFlags from '../flags';
// Native components
import ScreenStackHeaderConfigNativeComponent from '../fabric/ScreenStackHeaderConfigNativeComponent';
import ScreenStackHeaderSubviewNativeComponent from '../fabric/ScreenStackHeaderSubviewNativeComponent';
import { prepareHeaderBarButtonItems } from './helpers/prepareHeaderBarButtonItems';
import { isHeaderBarButtonsAvailableForCurrentPlatform } from '../utils';
export const ScreenStackHeaderSubview = ScreenStackHeaderSubviewNativeComponent;
export const ScreenStackHeaderConfig = /*#__PURE__*/React.forwardRef((props, ref) => {
const {
headerLeftBarButtonItems,
headerRightBarButtonItems
} = props;
const preparedHeaderLeftBarButtonItems = headerLeftBarButtonItems && isHeaderBarButtonsAvailableForCurrentPlatform ? prepareHeaderBarButtonItems(headerLeftBarButtonItems, 'left') : undefined;
const preparedHeaderRightBarButtonItems = headerRightBarButtonItems && isHeaderBarButtonsAvailableForCurrentPlatform ? prepareHeaderBarButtonItems(headerRightBarButtonItems, 'right') : undefined;
const hasHeaderBarButtonItems = isHeaderBarButtonsAvailableForCurrentPlatform && (preparedHeaderLeftBarButtonItems?.length || preparedHeaderRightBarButtonItems?.length);
// Handle bar button item presses
const onPressHeaderBarButtonItem = hasHeaderBarButtonItems ? event => {
const pressedItem = [...(preparedHeaderLeftBarButtonItems ?? []), ...(preparedHeaderRightBarButtonItems ?? [])].find(item => item && 'buttonId' in item && item.buttonId === event.nativeEvent.buttonId);
if (pressedItem && pressedItem.type === 'button' && pressedItem.onPress) {
pressedItem.onPress();
}
} : undefined;
// Handle bar button menu item presses by deep-searching nested menus
const onPressHeaderBarButtonMenuItem = hasHeaderBarButtonItems ? event => {
// Recursively search menu tree
const findInMenu = (menu, menuId) => {
for (const item of menu.items) {
if ('items' in item) {
// submenu: recurse
const found = findInMenu(item, menuId);
if (found) {
return found;
}
} else if ('menuId' in item && item.menuId === menuId) {
return item;
}
}
return undefined;
};
// Check each bar-button item with a menu
const allItems = [...(preparedHeaderLeftBarButtonItems ?? []), ...(preparedHeaderRightBarButtonItems ?? [])];
for (const item of allItems) {
if (item && item.type === 'menu' && item.menu) {
const action = findInMenu(item.menu, event.nativeEvent.menuId);
if (action) {
action.onPress();
return;
}
}
}
} : undefined;
return /*#__PURE__*/React.createElement(ScreenStackHeaderConfigNativeComponent, _extends({}, props, {
userInterfaceStyle: props.experimental_userInterfaceStyle,
headerLeftBarButtonItems: preparedHeaderLeftBarButtonItems,
headerRightBarButtonItems: preparedHeaderRightBarButtonItems,
onPressHeaderBarButtonItem: onPressHeaderBarButtonItem,
onPressHeaderBarButtonMenuItem: onPressHeaderBarButtonMenuItem,
ref: ref,
style: styles.headerConfig,
pointerEvents: "box-none",
synchronousShadowStateUpdatesEnabled: featureFlags.experiment.synchronousHeaderConfigUpdatesEnabled
}));
});
ScreenStackHeaderConfig.displayName = 'ScreenStackHeaderConfig';
export const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/React.createElement(ScreenStackHeaderSubview, {
type: "back",
style: styles.headerSubview,
synchronousShadowStateUpdatesEnabled: featureFlags.experiment.synchronousHeaderSubviewUpdatesEnabled
}, /*#__PURE__*/React.createElement(Image, _extends({
resizeMode: "center",
fadeDuration: 0
}, props)));
export const ScreenStackHeaderRightView = props => {
const {
style,
...rest
} = props;
return /*#__PURE__*/React.createElement(ScreenStackHeaderSubview, _extends({}, rest, {
type: "right",
synchronousShadowStateUpdatesEnabled: featureFlags.experiment.synchronousHeaderSubviewUpdatesEnabled,
style: [styles.headerSubview, style]
}));
};
export const ScreenStackHeaderLeftView = props => {
const {
style,
...rest
} = props;
return /*#__PURE__*/React.createElement(ScreenStackHeaderSubview, _extends({}, rest, {
type: "left",
synchronousShadowStateUpdatesEnabled: featureFlags.experiment.synchronousHeaderSubviewUpdatesEnabled,
style: [styles.headerSubview, style]
}));
};
export const ScreenStackHeaderCenterView = props => {
const {
style,
...rest
} = props;
return /*#__PURE__*/React.createElement(ScreenStackHeaderSubview, _extends({}, rest, {
type: "center",
synchronousShadowStateUpdatesEnabled: featureFlags.experiment.synchronousHeaderSubviewUpdatesEnabled,
style: [styles.headerSubviewCenter, style]
}));
};
export const ScreenStackHeaderSearchBarView = props => /*#__PURE__*/React.createElement(ScreenStackHeaderSubview, _extends({}, props, {
type: "searchBar",
synchronousShadowStateUpdatesEnabled: featureFlags.experiment.synchronousHeaderSubviewUpdatesEnabled,
style: styles.headerSubview
}));
const styles = StyleSheet.create({
headerSubview: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'center'
},
headerSubviewCenter: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'center',
flexShrink: 1
},
headerConfig: {
position: 'absolute',
width: '100%',
flexDirection: 'row',
justifyContent: 'space-between',
// We only want to center align the subviews on iOS.
// See https://github.com/software-mansion/react-native-screens/pull/2456
alignItems: Platform.OS === 'ios' ? 'center' : undefined
}
});
//# sourceMappingURL=ScreenStackHeaderConfig.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,14 @@
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import { Image, View } from 'react-native';
import React from 'react';
export const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Image, _extends({
resizeMode: "center",
fadeDuration: 0
}, props)));
export const ScreenStackHeaderRightView = props => /*#__PURE__*/React.createElement(View, props);
export const ScreenStackHeaderLeftView = props => /*#__PURE__*/React.createElement(View, props);
export const ScreenStackHeaderCenterView = props => /*#__PURE__*/React.createElement(View, props);
export const ScreenStackHeaderSearchBarView = props => /*#__PURE__*/React.createElement(View, props);
export const ScreenStackHeaderConfig = props => /*#__PURE__*/React.createElement(View, props);
export const ScreenStackHeaderSubview = View;
//# sourceMappingURL=ScreenStackHeaderConfig.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["Image","View","React","ScreenStackHeaderBackButtonImage","props","createElement","_extends","resizeMode","fadeDuration","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenStackHeaderConfig","ScreenStackHeaderSubview"],"sourceRoot":"../../../src","sources":["components/ScreenStackHeaderConfig.web.tsx"],"mappings":";AAAA,SAASA,KAAK,EAAcC,IAAI,QAAmB,cAAc;AACjE,OAAOC,KAAK,MAAM,OAAO;AAGzB,OAAO,MAAMC,gCAAgC,GAC3CC,KAAiB,iBAEjBF,KAAA,CAAAG,aAAA,CAACJ,IAAI,qBACHC,KAAA,CAAAG,aAAA,CAACL,KAAK,EAAAM,QAAA;EAACC,UAAU,EAAC,QAAQ;EAACC,YAAY,EAAE;AAAE,GAAKJ,KAAK,CAAG,CACpD,CACP;AAED,OAAO,MAAMK,0BAA0B,GACrCL,KAAgB,iBACMF,KAAA,CAAAG,aAAA,CAACJ,IAAI,EAAKG,KAAQ,CAAC;AAE3C,OAAO,MAAMM,yBAAyB,GACpCN,KAAgB,iBACMF,KAAA,CAAAG,aAAA,CAACJ,IAAI,EAAKG,KAAQ,CAAC;AAE3C,OAAO,MAAMO,2BAA2B,GACtCP,KAAgB,iBACMF,KAAA,CAAAG,aAAA,CAACJ,IAAI,EAAKG,KAAQ,CAAC;AAE3C,OAAO,MAAMQ,8BAA8B,GACzCR,KAAgB,iBACMF,KAAA,CAAAG,aAAA,CAACJ,IAAI,EAAKG,KAAQ,CAAC;AAE3C,OAAO,MAAMS,uBAAuB,GAClCT,KAAmC,iBACbF,KAAA,CAAAG,aAAA,CAACJ,IAAI,EAAKG,KAAQ,CAAC;AAE3C,OAAO,MAAMU,wBAEZ,GAAGb,IAAI","ignoreList":[]}

View File

@@ -0,0 +1,176 @@
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import * as React from 'react';
import { Platform, StyleSheet } from 'react-native';
import warnOnce from 'warn-once';
import DebugContainer from './DebugContainer';
import { ScreenStackHeaderConfig } from './ScreenStackHeaderConfig';
import Screen from './Screen';
import ScreenStack from './ScreenStack';
import { RNSScreensRefContext } from '../contexts';
import { FooterComponent } from './ScreenFooter';
import SafeAreaView from './safe-area/SafeAreaView';
import { featureFlags } from '../flags';
function ScreenStackItem({
children,
headerConfig,
activityState,
shouldFreeze,
stackPresentation,
sheetAllowedDetents,
contentStyle,
style,
screenId,
onHeaderHeightChange,
// eslint-disable-next-line camelcase
unstable_sheetFooter,
...rest
}, ref) {
const currentScreenRef = React.useRef(null);
const screenRefs = React.useContext(RNSScreensRefContext);
React.useImperativeHandle(ref, () => currentScreenRef.current);
const stackPresentationWithDefault = stackPresentation ?? 'push';
const headerConfigHiddenWithDefault = headerConfig?.hidden ?? false;
const isHeaderInModal = Platform.OS === 'android' ? false : stackPresentationWithDefault !== 'push' && headerConfigHiddenWithDefault === false;
const headerHiddenPreviousRef = React.useRef(headerConfigHiddenWithDefault);
React.useEffect(() => {
warnOnce(Platform.OS !== 'android' && stackPresentationWithDefault !== 'push' && headerHiddenPreviousRef.current !== headerConfigHiddenWithDefault, `Dynamically changing header's visibility in modals will result in remounting the screen and losing all local state.`);
headerHiddenPreviousRef.current = headerConfigHiddenWithDefault;
}, [headerConfigHiddenWithDefault, stackPresentationWithDefault]);
const hasEdgeEffects = rest?.scrollEdgeEffects === undefined || Object.values(rest.scrollEdgeEffects).some(propValue => propValue !== 'hidden');
const hasBlurEffect = headerConfig?.blurEffect !== undefined && headerConfig.blurEffect !== 'none';
warnOnce(hasEdgeEffects && hasBlurEffect && Platform.OS === 'ios' && parseInt(Platform.Version, 10) >= 26, '[RNScreens] Using both `blurEffect` and `scrollEdgeEffects` simultaneously may cause overlapping effects.');
const debugContainerStyle = getPositioningStyle(sheetAllowedDetents, stackPresentationWithDefault);
// For iOS, we need to extract background color and apply it to Screen
// due to the safe area inset at the bottom of ScreenContentWrapper
let internalScreenStyle;
if (stackPresentationWithDefault === 'formSheet' && Platform.OS === 'ios' && contentStyle) {
const {
screenStyles,
contentWrapperStyles
} = extractScreenStyles(contentStyle);
internalScreenStyle = screenStyles;
contentStyle = contentWrapperStyles;
}
const shouldUseSafeAreaView = Platform.OS === 'ios' && parseInt(Platform.Version, 10) >= 26;
const content = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DebugContainer, {
contentStyle: contentStyle,
style: debugContainerStyle,
stackPresentation: stackPresentationWithDefault
}, shouldUseSafeAreaView ? /*#__PURE__*/React.createElement(SafeAreaView, {
edges: getSafeAreaEdges(headerConfig)
}, children) : children), /*#__PURE__*/React.createElement(ScreenStackHeaderConfig, headerConfig), stackPresentationWithDefault === 'formSheet' && unstable_sheetFooter && /*#__PURE__*/React.createElement(FooterComponent, null, unstable_sheetFooter()));
return /*#__PURE__*/React.createElement(Screen, _extends({
ref: node => {
currentScreenRef.current = node;
if (screenRefs === null) {
console.warn('Looks like RNSScreensRefContext is missing. Make sure the ScreenStack component is wrapped in it');
return;
}
const currentRefs = screenRefs.current;
if (node === null) {
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete currentRefs[screenId];
} else {
currentRefs[screenId] = {
current: node
};
}
},
enabled: true,
isNativeStack: true,
activityState: activityState,
shouldFreeze: shouldFreeze,
screenId: screenId,
stackPresentation: stackPresentationWithDefault,
hasLargeHeader: headerConfig?.largeTitle ?? false,
sheetAllowedDetents: sheetAllowedDetents,
style: [style, internalScreenStyle],
onHeaderHeightChange: isHeaderInModal ? undefined : onHeaderHeightChange
}, rest), isHeaderInModal ? /*#__PURE__*/React.createElement(ScreenStack, {
style: styles.container
}, /*#__PURE__*/React.createElement(Screen, {
enabled: true,
isNativeStack: true,
activityState: activityState,
shouldFreeze: shouldFreeze,
hasLargeHeader: headerConfig?.largeTitle ?? false,
style: StyleSheet.absoluteFill,
onHeaderHeightChange: onHeaderHeightChange
}, content)) : content);
}
export default /*#__PURE__*/React.forwardRef(ScreenStackItem);
function getPositioningStyle(allowedDetents, presentation) {
const isIOS = Platform.OS === 'ios';
const rnMinorVersion = Platform.constants.reactNativeVersion.minor;
if (presentation !== 'formSheet') {
return styles.container;
}
if (isIOS) {
if (allowedDetents !== 'fitToContents' && rnMinorVersion >= 82 && featureFlags.experiment.synchronousScreenUpdatesEnabled) {
return styles.container;
} else {
return styles.absoluteWithNoBottom;
}
}
/**
* Note: `bottom: 0` is intentionally excluded from these styles for two reasons:
*
* 1. Omitting the bottom constraint ensures the Yoga layout engine does not dynamically
* recalculate the Screen and content size during animations.
*
* 2. Including `bottom: 0` with 'position: absolute' would force
* the component to anchor itself to an ancestor's bottom edge. This creates
* a dependency on the ancestor's size, whereas 'fitToContents' requires the
* FormSheet's dimensions to be derived strictly from its children.
*
* It was tested reliably only on Android.
*/
if (allowedDetents === 'fitToContents') {
return styles.absoluteWithNoBottom;
}
return styles.container;
}
// TODO: figure out whether other styles, like borders, filters, etc.
// shouldn't be applied on the Screen level on iOS due to the inset.
function extractScreenStyles(style) {
const flatStyle = StyleSheet.flatten(style);
const {
backgroundColor,
...contentWrapperStyles
} = flatStyle;
const screenStyles = {
backgroundColor
};
return {
screenStyles,
contentWrapperStyles
};
}
function getSafeAreaEdges(headerConfig) {
if (Platform.OS !== 'ios' || parseInt(Platform.Version, 10) < 26) {
return {};
}
let defaultEdges;
if (headerConfig?.translucent || headerConfig?.hidden) {
defaultEdges = {};
} else {
defaultEdges = {
top: true
};
}
return defaultEdges;
}
const styles = StyleSheet.create({
container: {
flex: 1
},
absoluteWithNoBottom: {
position: 'absolute',
top: 0,
start: 0,
end: 0
}
});
//# sourceMappingURL=ScreenStackItem.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,81 @@
'use client';
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { parseBooleanToOptionalBooleanNativeProp, isSearchBarAvailableForCurrentPlatform } from '../utils';
import { View } from 'react-native';
// Native components
import SearchBarNativeComponent, { Commands as SearchBarNativeCommands } from '../fabric/SearchBarNativeComponent';
const NativeSearchBar = SearchBarNativeComponent;
const NativeSearchBarCommands = SearchBarNativeCommands;
function SearchBar(props, forwardedRef) {
const searchBarRef = React.useRef(null);
React.useImperativeHandle(forwardedRef, () => ({
blur: () => {
_callMethodWithRef(ref => NativeSearchBarCommands.blur(ref));
},
focus: () => {
_callMethodWithRef(ref => NativeSearchBarCommands.focus(ref));
},
toggleCancelButton: flag => {
_callMethodWithRef(ref => NativeSearchBarCommands.toggleCancelButton(ref, flag));
},
clearText: () => {
_callMethodWithRef(ref => NativeSearchBarCommands.clearText(ref));
},
setText: text => {
_callMethodWithRef(ref => NativeSearchBarCommands.setText(ref, text));
},
cancelSearch: () => {
_callMethodWithRef(ref => NativeSearchBarCommands.cancelSearch(ref));
}
}));
const _callMethodWithRef = React.useCallback(method => {
const ref = searchBarRef.current;
if (ref) {
method(ref);
} else {
console.warn('Reference to native search bar component has not been updated yet');
}
}, [searchBarRef]);
if (!isSearchBarAvailableForCurrentPlatform) {
console.warn('Importing SearchBar is only valid on iOS and Android devices.');
return View;
}
// This is necessary only for legacy architecture (Paper).
const parsedProps = parseUndefinedPropsToSystemDefault(props);
const {
obscureBackground,
hideNavigationBar,
onFocus,
onBlur,
onSearchButtonPress,
onCancelButtonPress,
onChangeText,
...rest
} = parsedProps;
return /*#__PURE__*/React.createElement(NativeSearchBar, _extends({
ref: searchBarRef
}, rest, {
obscureBackground: parseBooleanToOptionalBooleanNativeProp(obscureBackground),
hideNavigationBar: parseBooleanToOptionalBooleanNativeProp(hideNavigationBar),
onSearchFocus: onFocus,
onSearchBlur: onBlur,
onSearchButtonPress: onSearchButtonPress,
onCancelButtonPress: onCancelButtonPress,
onChangeText: onChangeText
}));
}
// This function is necessary for legacy architecture (Paper) to ensure
// consistent behavior for props with `systemDefault` option.
function parseUndefinedPropsToSystemDefault(props) {
return {
...props,
autoCapitalize: props.autoCapitalize ?? 'systemDefault'
};
}
export default /*#__PURE__*/React.forwardRef(SearchBar);
//# sourceMappingURL=SearchBar.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","React","parseBooleanToOptionalBooleanNativeProp","isSearchBarAvailableForCurrentPlatform","View","SearchBarNativeComponent","Commands","SearchBarNativeCommands","NativeSearchBar","NativeSearchBarCommands","SearchBar","props","forwardedRef","searchBarRef","useRef","useImperativeHandle","blur","_callMethodWithRef","ref","focus","toggleCancelButton","flag","clearText","setText","text","cancelSearch","useCallback","method","current","console","warn","parsedProps","parseUndefinedPropsToSystemDefault","obscureBackground","hideNavigationBar","onFocus","onBlur","onSearchButtonPress","onCancelButtonPress","onChangeText","rest","createElement","onSearchFocus","onSearchBlur","autoCapitalize","forwardRef"],"sourceRoot":"../../../src","sources":["components/SearchBar.tsx"],"mappings":"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","ignoreList":[]}

View File

@@ -0,0 +1,4 @@
import { View } from 'react-native';
const SearchBar = View;
export default SearchBar;
//# sourceMappingURL=SearchBar.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","SearchBar"],"sourceRoot":"../../../src","sources":["components/SearchBar.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,SAAS,GAAGD,IAAI;AAEtB,eAAeC,SAAS","ignoreList":[]}

View File

@@ -0,0 +1,6 @@
const SplitHost = () => {
console.warn('[RNScreens] Split component is supported only for iOS. Consider using an alternative layout for Android.');
return null;
};
export default SplitHost;
//# sourceMappingURL=SplitHost.android.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["SplitHost","console","warn"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitHost.android.tsx"],"mappings":"AAAA,MAAMA,SAAS,GAAGA,CAAA,KAAM;EACtBC,OAAO,CAACC,IAAI,CACV,0GACF,CAAC;EACD,OAAO,IAAI;AACb,CAAC;AAED,eAAeF,SAAS","ignoreList":[]}

View File

@@ -0,0 +1,65 @@
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { StyleSheet } from 'react-native';
import SplitViewHostNativeComponent from '../../../fabric/gamma/SplitViewHostNativeComponent';
import SplitScreen from './SplitScreen';
// According to the UIKit documentation: https://developer.apple.com/documentation/uikit/uisplitviewcontroller/displaymode-swift.enum
// Only specific pairs for displayMode - splitBehavior are valid and others may lead to unexpected results.
// Therefore, we're adding check on the JS side to return a feedback to the client when that pairing isn't valid.
// However, we're not blocking these props to be set on the native side, because it doesn't crash, just the result or transitions may not work as expected.
const displayModeForSplitCompatibilityMap = {
tile: ['secondaryOnly', 'oneBesideSecondary', 'twoBesideSecondary'],
overlay: ['secondaryOnly', 'oneOverSecondary', 'twoOverSecondary'],
displace: ['secondaryOnly', 'oneBesideSecondary', 'twoDisplaceSecondary'],
automatic: [] // placeholder for satisfying types; we'll handle it specially in logic
};
const isValidDisplayModeForSplitBehavior = (displayMode, splitBehavior) => {
if (splitBehavior === 'automatic') {
// for automatic we cannot easily verify the compatibility, because it depends on the system preference for display mode, therefore we're assuming that 'automatic' has only valid combinations
return true;
}
return displayModeForSplitCompatibilityMap[splitBehavior].includes(displayMode);
};
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function SplitHost(props) {
const {
preferredDisplayMode,
preferredSplitBehavior
} = props;
React.useEffect(() => {
if (preferredDisplayMode && preferredSplitBehavior) {
const isValid = isValidDisplayModeForSplitBehavior(preferredDisplayMode, preferredSplitBehavior);
if (!isValid) {
const validDisplayModes = displayModeForSplitCompatibilityMap[preferredSplitBehavior];
console.warn(`Invalid display mode "${preferredDisplayMode}" for split behavior "${preferredSplitBehavior}".` + `\nValid modes for "${preferredSplitBehavior}" are: ${validDisplayModes.join(', ')}.`);
}
}
}, [preferredDisplayMode, preferredSplitBehavior]);
const children = React.Children.toArray(props.children);
const columns = children.filter(
// @ts-ignore - type is valid attribute for child
child => child.type === SplitScreen.Column);
const inspectors = children.filter(
// @ts-ignore - type is valid attribute for child
child => child.type === SplitScreen.Inspector);
return /*#__PURE__*/React.createElement(SplitViewHostNativeComponent
// UISplitViewController requires the number of columns to be specified at initialization and it cannot be changed dynamically later.
// By using a specific key in this form, we can detect changes in the number of React children.
// This enables us to fully recreate the SplitView when necessary, ensuring the correct column configuration is always applied.
, _extends({
key: `columns-${columns.length}-inspectors-${inspectors.length}`
}, props, {
style: styles.container
}), props.children);
}
const styles = StyleSheet.create({
container: {
flex: 1
}
});
export default SplitHost;
//# sourceMappingURL=SplitHost.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","SplitViewHostNativeComponent","SplitScreen","displayModeForSplitCompatibilityMap","tile","overlay","displace","automatic","isValidDisplayModeForSplitBehavior","displayMode","splitBehavior","includes","SplitHost","props","preferredDisplayMode","preferredSplitBehavior","useEffect","isValid","validDisplayModes","console","warn","join","children","Children","toArray","columns","filter","child","type","Column","inspectors","Inspector","createElement","_extends","key","length","style","styles","container","create","flex"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitHost.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,4BAA4B,MAAM,oDAAoD;AAM7F,OAAOC,WAAW,MAAM,eAAe;;AAEvC;AACA;AACA;AACA;AACA,MAAMC,mCAGL,GAAG;EACFC,IAAI,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,CAAC;EACnEC,OAAO,EAAE,CAAC,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;EAClEC,QAAQ,EAAE,CAAC,eAAe,EAAE,oBAAoB,EAAE,sBAAsB,CAAC;EACzEC,SAAS,EAAE,EAAE,CAAE;AACjB,CAAC;AAED,MAAMC,kCAAkC,GAAGA,CACzCC,WAA6B,EAC7BC,aAA4B,KACzB;EACH,IAAIA,aAAa,KAAK,WAAW,EAAE;IACjC;IACA,OAAO,IAAI;EACb;EACA,OAAOP,mCAAmC,CAACO,aAAa,CAAC,CAACC,QAAQ,CAChEF,WACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA,SAASG,SAASA,CAACC,KAAqB,EAAE;EACxC,MAAM;IAAEC,oBAAoB;IAAEC;EAAuB,CAAC,GAAGF,KAAK;EAE9Dd,KAAK,CAACiB,SAAS,CAAC,MAAM;IACpB,IAAIF,oBAAoB,IAAIC,sBAAsB,EAAE;MAClD,MAAME,OAAO,GAAGT,kCAAkC,CAChDM,oBAAoB,EACpBC,sBACF,CAAC;MACD,IAAI,CAACE,OAAO,EAAE;QACZ,MAAMC,iBAAiB,GACrBf,mCAAmC,CAACY,sBAAsB,CAAC;QAC7DI,OAAO,CAACC,IAAI,CACV,yBAAyBN,oBAAoB,yBAAyBC,sBAAsB,IAAI,GAC9F,sBAAsBA,sBAAsB,UAAUG,iBAAiB,CAACG,IAAI,CAC1E,IACF,CAAC,GACL,CAAC;MACH;IACF;EACF,CAAC,EAAE,CAACP,oBAAoB,EAAEC,sBAAsB,CAAC,CAAC;EAElD,MAAMO,QAAQ,GAAGvB,KAAK,CAACwB,QAAQ,CAACC,OAAO,CAACX,KAAK,CAACS,QAAQ,CAAC;EAEvD,MAAMG,OAAO,GAAGH,QAAQ,CAACI,MAAM;EAC7B;EACAC,KAAK,IAAIA,KAAK,CAACC,IAAI,KAAK1B,WAAW,CAAC2B,MACtC,CAAC;EAED,MAAMC,UAAU,GAAGR,QAAQ,CAACI,MAAM;EAChC;EACAC,KAAK,IAAIA,KAAK,CAACC,IAAI,KAAK1B,WAAW,CAAC6B,SACtC,CAAC;EAED,oBACEhC,KAAA,CAAAiC,aAAA,CAAC/B;EACC;EACA;EACA;EAAA,EAAAgC,QAAA;IACAC,GAAG,EAAE,WAAWT,OAAO,CAACU,MAAM,eAAeL,UAAU,CAACK,MAAM;EAAG,GAC7DtB,KAAK;IACTuB,KAAK,EAAEC,MAAM,CAACC;EAAU,IACvBzB,KAAK,CAACS,QACqB,CAAC;AAEnC;AAEA,MAAMe,MAAM,GAAGrC,UAAU,CAACuC,MAAM,CAAC;EAC/BD,SAAS,EAAE;IACTE,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,eAAe5B,SAAS","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=SplitHost.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitHost.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,6 @@
const SplitHost = () => {
console.warn('[RNScreens] Split component is supported only for iOS. Consider using an alternative layout for Web.');
return null;
};
export default SplitHost;
//# sourceMappingURL=SplitHost.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["SplitHost","console","warn"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitHost.web.tsx"],"mappings":"AAAA,MAAMA,SAAS,GAAGA,CAAA,KAAM;EACtBC,OAAO,CAACC,IAAI,CACV,sGACF,CAAC;EACD,OAAO,IAAI;AACb,CAAC;AAED,eAAeF,SAAS","ignoreList":[]}

View File

@@ -0,0 +1,11 @@
const NOOP = () => {
console.warn('[RNScreens] Split component is supported only for iOS. Consider using an alternative layout for Android.');
return null;
};
const Column = NOOP;
const Inspector = NOOP;
export default {
Column,
Inspector
};
//# sourceMappingURL=SplitScreen.android.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["NOOP","console","warn","Column","Inspector"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitScreen.android.tsx"],"mappings":"AAAA,MAAMA,IAAI,GAAGA,CAAA,KAAM;EACjBC,OAAO,CAACC,IAAI,CACV,0GACF,CAAC;EACD,OAAO,IAAI;AACb,CAAC;AAED,MAAMC,MAAM,GAAGH,IAAI;AACnB,MAAMI,SAAS,GAAGJ,IAAI;AAEtB,eAAe;EAAEG,MAAM;EAAEC;AAAU,CAAC","ignoreList":[]}

View File

@@ -0,0 +1,36 @@
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { StyleSheet } from 'react-native';
import SplitViewScreenNativeComponent from '../../../fabric/gamma/SplitViewScreenNativeComponent';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function Column(props) {
return /*#__PURE__*/React.createElement(SplitViewScreenNativeComponent, _extends({
columnType: "column"
}, props, {
style: StyleSheet.absoluteFill
}), props.children);
}
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function Inspector(props) {
return /*#__PURE__*/React.createElement(SplitViewScreenNativeComponent, _extends({
columnType: "inspector"
}, props, {
style: StyleSheet.absoluteFill
}), props.children);
}
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
// TODO: refactor to drop `Screen` suffix as the API name is really long at the moment
const SplitScreen = {
Column,
Inspector
};
export default SplitScreen;
//# sourceMappingURL=SplitScreen.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","SplitViewScreenNativeComponent","Column","props","createElement","_extends","columnType","style","absoluteFill","children","Inspector","SplitScreen"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitScreen.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,8BAA8B,MAAM,sDAAsD;AAGjG;AACA;AACA;AACA,SAASC,MAAMA,CAACC,KAAuB,EAAE;EACvC,oBACEJ,KAAA,CAAAK,aAAA,CAACH,8BAA8B,EAAAI,QAAA;IAC7BC,UAAU,EAAC;EAAQ,GACfH,KAAK;IACTI,KAAK,EAAEP,UAAU,CAACQ;EAAa,IAC9BL,KAAK,CAACM,QACuB,CAAC;AAErC;;AAEA;AACA;AACA;AACA,SAASC,SAASA,CAACP,KAAuB,EAAE;EAC1C,oBACEJ,KAAA,CAAAK,aAAA,CAACH,8BAA8B,EAAAI,QAAA;IAC7BC,UAAU,EAAC;EAAW,GAClBH,KAAK;IACTI,KAAK,EAAEP,UAAU,CAACQ;EAAa,IAC9BL,KAAK,CAACM,QACuB,CAAC;AAErC;;AAEA;AACA;AACA;AACA;AACA,MAAME,WAAW,GAAG;EAClBT,MAAM;EACNQ;AACF,CAAC;AAED,eAAeC,WAAW","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=SplitScreen.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitScreen.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,17 @@
const NOOP = () => {
console.warn('[RNScreens] Split component is supported only for iOS. Consider using an alternative layout for Web.');
return null;
};
const Column = NOOP;
const Inspector = NOOP;
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
// TODO: refactor to drop `Screen` suffix as the API name is really long at the moment
const SplitScreen = {
Column,
Inspector
};
export default SplitScreen;
//# sourceMappingURL=SplitScreen.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["NOOP","console","warn","Column","Inspector","SplitScreen"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/SplitScreen.web.tsx"],"mappings":"AAAA,MAAMA,IAAI,GAAGA,CAAA,KAAM;EACjBC,OAAO,CAACC,IAAI,CACV,sGACF,CAAC;EACD,OAAO,IAAI;AACb,CAAC;AAED,MAAMC,MAAM,GAAGH,IAAI;AACnB,MAAMI,SAAS,GAAGJ,IAAI;;AAEtB;AACA;AACA;AACA;AACA,MAAMK,WAAW,GAAG;EAClBF,MAAM;EACNC;AACF,CAAC;AAED,eAAeC,WAAW","ignoreList":[]}

View File

@@ -0,0 +1,15 @@
import SplitHost from './SplitHost';
import SplitScreen from './SplitScreen';
export * from './SplitHost.types';
export * from './SplitScreen.types';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
const Split = {
Host: SplitHost,
Column: SplitScreen.Column,
Inspector: SplitScreen.Inspector
};
export default Split;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["SplitHost","SplitScreen","Split","Host","Column","Inspector"],"sourceRoot":"../../../../../src","sources":["components/gamma/split/index.ts"],"mappings":"AAAA,OAAOA,SAAS,MAAM,aAAa;AACnC,OAAOC,WAAW,MAAM,eAAe;AAEvC,cAAc,mBAAmB;AACjC,cAAc,qBAAqB;;AAEnC;AACA;AACA;AACA,MAAMC,KAAK,GAAG;EACZC,IAAI,EAAEH,SAAS;EACfI,MAAM,EAAEH,WAAW,CAACG,MAAM;EAC1BC,SAAS,EAAEJ,WAAW,CAACI;AACzB,CAAC;AAED,eAAeH,KAAK","ignoreList":[]}

View File

@@ -0,0 +1,22 @@
import React from 'react';
import { StyleSheet } from 'react-native';
import StackHostNativeComponent from '../../../fabric/gamma/stack/StackHostNativeComponent';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function StackHost({
children,
ref
}) {
return /*#__PURE__*/React.createElement(StackHostNativeComponent, {
ref: ref,
style: styles.container
}, children);
}
const styles = StyleSheet.create({
container: {
flex: 1
}
});
export default StackHost;
//# sourceMappingURL=StackHost.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","StackHostNativeComponent","StackHost","children","ref","createElement","style","styles","container","create","flex"],"sourceRoot":"../../../../../src","sources":["components/gamma/stack/StackHost.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,wBAAwB,MAAM,sDAAsD;AAG3F;AACA;AACA;AACA,SAASC,SAASA,CAAC;EAAEC,QAAQ;EAAEC;AAAoB,CAAC,EAAE;EACpD,oBACEL,KAAA,CAAAM,aAAA,CAACJ,wBAAwB;IAACG,GAAG,EAAEA,GAAI;IAACE,KAAK,EAAEC,MAAM,CAACC;EAAU,GACzDL,QACuB,CAAC;AAE/B;AAEA,MAAMI,MAAM,GAAGP,UAAU,CAACS,MAAM,CAAC;EAC/BD,SAAS,EAAE;IACTE,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,eAAeR,SAAS","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=StackHost.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/gamma/stack/StackHost.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,7 @@
import { View } from 'react-native';
// TODO: Determine what this type is & whether it should not be removed
const StackHost = View;
export default StackHost;
//# sourceMappingURL=StackHost.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","StackHost"],"sourceRoot":"../../../../../src","sources":["components/gamma/stack/StackHost.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAmB,cAAc;;AAE9C;;AAGA,MAAMC,SAAS,GAAGD,IAAI;AAEtB,eAAeC,SAAS","ignoreList":[]}

View File

@@ -0,0 +1,49 @@
import React from 'react';
import { StyleSheet } from 'react-native';
import StackScreenNativeComponent from '../../../fabric/gamma/stack/StackScreenNativeComponent';
import { useRenderDebugInfo } from '../../../private/';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function StackScreen({
children,
// Control
activityMode,
screenKey,
// Events
onWillAppear,
onWillDisappear,
onDidAppear,
onDidDisappear,
onDismiss,
onNativeDismiss
}) {
const onDismissWrapper = React.useCallback(event => {
if (event.nativeEvent.isNativeDismiss) {
onNativeDismiss?.(screenKey);
} else {
onDismiss?.(screenKey);
}
}, [onDismiss, onNativeDismiss, screenKey]);
const componentRef = useRenderDebugInfo(React.useMemo(() => `StackScreen (${screenKey})`, [screenKey]));
return /*#__PURE__*/React.createElement(StackScreenNativeComponent
// @ts-ignore - debug only
, {
ref: componentRef,
style: StyleSheet.absoluteFill
// Control
,
activityMode: activityMode,
screenKey: screenKey
// Events
,
onWillAppear: onWillAppear,
onDidAppear: onDidAppear,
onWillDisappear: onWillDisappear,
onDidDisappear: onDidDisappear,
onDismiss: onDismissWrapper
}, children);
}
export default StackScreen;
//# sourceMappingURL=StackScreen.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","StackScreenNativeComponent","useRenderDebugInfo","StackScreen","children","activityMode","screenKey","onWillAppear","onWillDisappear","onDidAppear","onDidDisappear","onDismiss","onNativeDismiss","onDismissWrapper","useCallback","event","nativeEvent","isNativeDismiss","componentRef","useMemo","createElement","ref","style","absoluteFill"],"sourceRoot":"../../../../../src","sources":["components/gamma/stack/StackScreen.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,0BAA0B,MAAM,wDAAwD;AAE/F,SAASC,kBAAkB,QAAQ,mBAAmB;;AAEtD;AACA;AACA;AACA,SAASC,WAAWA,CAAC;EACnBC,QAAQ;EACR;EACAC,YAAY;EACZC,SAAS;EACT;EACAC,YAAY;EACZC,eAAe;EACfC,WAAW;EACXC,cAAc;EACdC,SAAS;EACTC;AACgB,CAAC,EAAE;EACnB,MAAMC,gBAAgB,GAAGd,KAAK,CAACe,WAAW,CACvCC,KAAqB,IAAK;IACzB,IAAIA,KAAK,CAACC,WAAW,CAACC,eAAe,EAAE;MACrCL,eAAe,GAAGN,SAAS,CAAC;IAC9B,CAAC,MAAM;MACLK,SAAS,GAAGL,SAAS,CAAC;IACxB;EACF,CAAC,EACD,CAACK,SAAS,EAAEC,eAAe,EAAEN,SAAS,CACxC,CAAC;EAED,MAAMY,YAAY,GAAGhB,kBAAkB,CACrCH,KAAK,CAACoB,OAAO,CAAC,MAAM,gBAAgBb,SAAS,GAAG,EAAE,CAACA,SAAS,CAAC,CAC/D,CAAC;EAED,oBACEP,KAAA,CAAAqB,aAAA,CAACnB;EACC;EAAA;IACAoB,GAAG,EAAEH,YAAa;IAClBI,KAAK,EAAEtB,UAAU,CAACuB;IAClB;IAAA;IACAlB,YAAY,EAAEA,YAAa;IAC3BC,SAAS,EAAEA;IACX;IAAA;IACAC,YAAY,EAAEA,YAAa;IAC3BE,WAAW,EAAEA,WAAY;IACzBD,eAAe,EAAEA,eAAgB;IACjCE,cAAc,EAAEA,cAAe;IAC/BC,SAAS,EAAEE;EAAiB,GAC3BT,QACyB,CAAC;AAEjC;AAEA,eAAeD,WAAW","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=StackScreen.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["components/gamma/stack/StackScreen.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,4 @@
import { View } from 'react-native';
const StackScreen = View;
export default StackScreen;
//# sourceMappingURL=StackScreen.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","StackScreen"],"sourceRoot":"../../../../../src","sources":["components/gamma/stack/StackScreen.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,WAAW,GAAGD,IAAI;AAExB,eAAeC,WAAW","ignoreList":[]}

View File

@@ -0,0 +1,14 @@
import StackHost from './StackHost';
import StackScreen from './StackScreen';
export * from './StackHost.types';
export * from './StackScreen.types';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
const Stack = {
Host: StackHost,
Screen: StackScreen
};
export default Stack;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["StackHost","StackScreen","Stack","Host","Screen"],"sourceRoot":"../../../../../src","sources":["components/gamma/stack/index.ts"],"mappings":"AAAA,OAAOA,SAAS,MAAM,aAAa;AACnC,OAAOC,WAAW,MAAM,eAAe;AAEvC,cAAc,mBAAmB;AACjC,cAAc,qBAAqB;;AAEnC;AACA;AACA;AACA,MAAMC,KAAK,GAAG;EACZC,IAAI,EAAEH,SAAS;EACfI,MAAM,EAAEH;AACV,CAAC;AAED,eAAeC,KAAK","ignoreList":[]}

View File

@@ -0,0 +1,24 @@
import React from 'react';
import { Freeze } from 'react-freeze';
// This component allows one more render before freezing the screen.
// Allows activityState to reach the native side and useIsFocused to work correctly.
function DelayedFreeze({
freeze,
children
}) {
// flag used for determining whether freeze should be enabled
const [freezeState, setFreezeState] = React.useState(false);
React.useEffect(() => {
const id = setTimeout(() => {
setFreezeState(freeze);
}, 0);
return () => {
clearTimeout(id);
};
}, [freeze]);
return /*#__PURE__*/React.createElement(Freeze, {
freeze: freeze ? freezeState : false
}, children);
}
export default DelayedFreeze;
//# sourceMappingURL=DelayedFreeze.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","Freeze","DelayedFreeze","freeze","children","freezeState","setFreezeState","useState","useEffect","id","setTimeout","clearTimeout","createElement"],"sourceRoot":"../../../../src","sources":["components/helpers/DelayedFreeze.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,QAAQ,cAAc;AAOrC;AACA;AACA,SAASC,aAAaA,CAAC;EAAEC,MAAM;EAAEC;AAA6B,CAAC,EAAE;EAC/D;EACA,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGN,KAAK,CAACO,QAAQ,CAAC,KAAK,CAAC;EAE3DP,KAAK,CAACQ,SAAS,CAAC,MAAM;IACpB,MAAMC,EAAE,GAAGC,UAAU,CAAC,MAAM;MAC1BJ,cAAc,CAACH,MAAM,CAAC;IACxB,CAAC,EAAE,CAAC,CAAC;IACL,OAAO,MAAM;MACXQ,YAAY,CAACF,EAAE,CAAC;IAClB,CAAC;EACH,CAAC,EAAE,CAACN,MAAM,CAAC,CAAC;EAEZ,oBAAOH,KAAA,CAAAY,aAAA,CAACX,MAAM;IAACE,MAAM,EAAEA,MAAM,GAAGE,WAAW,GAAG;EAAM,GAAED,QAAiB,CAAC;AAC1E;AAEA,eAAeF,aAAa","ignoreList":[]}

View File

@@ -0,0 +1,75 @@
import { Image, processColor } from 'react-native';
const prepareMenu = (menu, index, side) => {
return {
...menu,
items: menu.items.map((menuItem, menuIndex) => {
const iconType = menuItem.icon?.type;
const sfSymbolName = iconType === 'sfSymbol' ? menuItem.icon?.name : undefined;
const xcassetName = iconType === 'xcasset' ? menuItem.icon?.name : undefined;
if (menuItem.type === 'submenu') {
return {
...menuItem,
sfSymbolName,
xcassetName,
...prepareMenu(menuItem, menuIndex, side)
};
}
return {
...menuItem,
sfSymbolName,
xcassetName,
menuId: `${menuIndex}-${index}-${side}`
};
})
};
};
export const prepareHeaderBarButtonItems = (barButtonItems, side) => {
return barButtonItems?.map((item, index) => {
if (item.type === 'spacing') {
return item;
}
let imageSource, templateSource;
if (item.icon?.type === 'imageSource') {
imageSource = Image.resolveAssetSource(item.icon.imageSource);
} else if (item.icon?.type === 'templateSource') {
templateSource = Image.resolveAssetSource(item.icon.templateSource);
}
const titleStyle = item.titleStyle ? {
...item.titleStyle,
color: processColor(item.titleStyle.color)
} : undefined;
const tintColor = item.tintColor ? processColor(item.tintColor) : undefined;
const badge = item.badge ? {
...item.badge,
style: {
...item.badge.style,
color: processColor(item.badge.style?.color),
backgroundColor: processColor(item.badge.style?.backgroundColor)
}
} : undefined;
const processedItem = {
...item,
imageSource,
templateSource,
sfSymbolName: item.icon?.type === 'sfSymbol' ? item.icon.name : undefined,
xcassetName: item.icon?.type === 'xcasset' ? item.icon.name : undefined,
titleStyle,
tintColor,
badge
};
if (item.type === 'button') {
return {
...processedItem,
buttonId: `${index}-${side}`
};
}
if (item.type === 'menu') {
return {
...processedItem,
menu: prepareMenu(item.menu, index, side)
};
}
return null;
});
};
//# sourceMappingURL=prepareHeaderBarButtonItems.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["Image","processColor","prepareMenu","menu","index","side","items","map","menuItem","menuIndex","iconType","icon","type","sfSymbolName","name","undefined","xcassetName","menuId","prepareHeaderBarButtonItems","barButtonItems","item","imageSource","templateSource","resolveAssetSource","titleStyle","color","tintColor","badge","style","backgroundColor","processedItem","buttonId"],"sourceRoot":"../../../../src","sources":["components/helpers/prepareHeaderBarButtonItems.ts"],"mappings":"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","ignoreList":[]}

View File

@@ -0,0 +1,85 @@
import { Platform } from 'react-native';
// This value must be kept in sync with native side.
export const SHEET_FIT_TO_CONTENTS = [-1];
export const SHEET_COMPAT_LARGE = [1.0];
export const SHEET_COMPAT_MEDIUM = [0.5];
export const SHEET_COMPAT_ALL = [0.5, 1.0];
export const SHEET_DIMMED_ALWAYS = -1;
export function assertDetentsArrayIsSorted(array) {
for (let i = 1; i < array.length; i++) {
if (array[i - 1] > array[i]) {
throw new Error('[RNScreens] The detent array is not sorted in ascending order!');
}
}
}
// These exist to transform old 'legacy' values used by the formsheet API to the new API shape.
// We can get rid of it, once we get rid of support for legacy values: 'large', 'medium', 'all'.
export function resolveSheetAllowedDetents(allowedDetentsCompat) {
if (Array.isArray(allowedDetentsCompat)) {
if (Platform.OS === 'android' && allowedDetentsCompat.length > 3) {
if (__DEV__) {
console.warn('[RNScreens] Sheets API on Android do accept only up to 3 values. Any surplus value are ignored.');
}
allowedDetentsCompat = allowedDetentsCompat.slice(0, 3);
}
if (__DEV__) {
assertDetentsArrayIsSorted(allowedDetentsCompat);
}
return allowedDetentsCompat;
} else if (allowedDetentsCompat === 'fitToContents') {
return SHEET_FIT_TO_CONTENTS;
} else if (allowedDetentsCompat === 'large') {
return SHEET_COMPAT_LARGE;
} else if (allowedDetentsCompat === 'medium') {
return SHEET_COMPAT_MEDIUM;
} else if (allowedDetentsCompat === 'all') {
return SHEET_COMPAT_ALL;
} else {
// Safe default, only large detent is allowed.
return SHEET_COMPAT_LARGE;
}
}
export function resolveSheetLargestUndimmedDetent(lud, lastDetentIndex) {
if (typeof lud === 'number') {
if (!isIndexInClosedRange(lud, SHEET_DIMMED_ALWAYS, lastDetentIndex)) {
if (__DEV__) {
throw new Error("[RNScreens] Provided value of 'sheetLargestUndimmedDetentIndex' prop is out of bounds of 'sheetAllowedDetents' array.");
}
// Return default in production
return SHEET_DIMMED_ALWAYS;
}
return lud;
} else if (lud === 'last') {
return lastDetentIndex;
} else if (lud === 'none' || lud === 'all') {
return SHEET_DIMMED_ALWAYS;
} else if (lud === 'large') {
return 1;
} else if (lud === 'medium') {
return 0;
} else {
// Safe default, every detent is dimmed
return SHEET_DIMMED_ALWAYS;
}
}
export function resolveSheetInitialDetentIndex(index, lastDetentIndex) {
if (index === 'last') {
index = lastDetentIndex;
} else if (index == null) {
// Intentional check for undefined & null ^
index = 0;
}
if (!isIndexInClosedRange(index, 0, lastDetentIndex)) {
if (__DEV__) {
throw new Error("[RNScreens] Provided value of 'sheetInitialDetentIndex' prop is out of bounds of 'sheetAllowedDetents' array.");
}
// Return default in production
return 0;
}
return index;
}
function isIndexInClosedRange(value, lowerBound, upperBound) {
return Number.isInteger(value) && value >= lowerBound && value <= upperBound;
}
//# sourceMappingURL=sheet.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["Platform","SHEET_FIT_TO_CONTENTS","SHEET_COMPAT_LARGE","SHEET_COMPAT_MEDIUM","SHEET_COMPAT_ALL","SHEET_DIMMED_ALWAYS","assertDetentsArrayIsSorted","array","i","length","Error","resolveSheetAllowedDetents","allowedDetentsCompat","Array","isArray","OS","__DEV__","console","warn","slice","resolveSheetLargestUndimmedDetent","lud","lastDetentIndex","isIndexInClosedRange","resolveSheetInitialDetentIndex","index","value","lowerBound","upperBound","Number","isInteger"],"sourceRoot":"../../../../src","sources":["components/helpers/sheet.tsx"],"mappings":"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","ignoreList":[]}

View File

@@ -0,0 +1,9 @@
import { useEffect, useRef } from 'react';
export function usePrevious(state) {
const ref = useRef(undefined);
useEffect(() => {
ref.current = state;
});
return ref.current;
}
//# sourceMappingURL=usePrevious.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["useEffect","useRef","usePrevious","state","ref","undefined","current"],"sourceRoot":"../../../../src","sources":["components/helpers/usePrevious.tsx"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEzC,OAAO,SAASC,WAAWA,CAAIC,KAAQ,EAAiB;EACtD,MAAMC,GAAG,GAAGH,MAAM,CAAII,SAAS,CAAC;EAEhCL,SAAS,CAAC,MAAM;IACdI,GAAG,CAACE,OAAO,GAAGH,KAAK;EACrB,CAAC,CAAC;EAEF,OAAOC,GAAG,CAACE,OAAO;AACpB","ignoreList":[]}

View File

@@ -0,0 +1,30 @@
// Implementation adapted from `react-native-safe-area-context`:
// https://github.com/AppAndFlow/react-native-safe-area-context/blob/v5.6.1/src/SafeAreaView.tsx
'use client';
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import SafeAreaViewNativeComponent from '../../fabric/safe-area/SafeAreaViewNativeComponent';
import { StyleSheet } from 'react-native';
function SafeAreaView(props) {
return /*#__PURE__*/React.createElement(SafeAreaViewNativeComponent, _extends({}, props, {
style: [styles.flex, props.style],
edges: getNativeEdgesProp(props.edges)
}));
}
export default SafeAreaView;
function getNativeEdgesProp(edges) {
return {
top: false,
bottom: false,
left: false,
right: false,
...edges
};
}
const styles = StyleSheet.create({
flex: {
flex: 1
}
});
//# sourceMappingURL=SafeAreaView.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","React","SafeAreaViewNativeComponent","StyleSheet","SafeAreaView","props","createElement","style","styles","flex","edges","getNativeEdgesProp","top","bottom","left","right","create"],"sourceRoot":"../../../../src","sources":["components/safe-area/SafeAreaView.tsx"],"mappings":"AAAA;AACA;AACA,YAAY;;AAAC,SAAAA,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,CAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAI,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAL,CAAA,CAAAK,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAL,CAAA,KAAAJ,QAAA,CAAAY,KAAA,OAAAN,SAAA;AAEb,OAAOO,KAAK,MAAM,OAAO;AAEzB,OAAOC,2BAA2B,MAE3B,oDAAoD;AAC3D,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,YAAYA,CAACC,KAAwB,EAAE;EAC9C,oBACEJ,KAAA,CAAAK,aAAA,CAACJ,2BAA2B,EAAAd,QAAA,KACtBiB,KAAK;IACTE,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAEJ,KAAK,CAACE,KAAK,CAAE;IAClCG,KAAK,EAAEC,kBAAkB,CAACN,KAAK,CAACK,KAAK;EAAE,EACxC,CAAC;AAEN;AAEA,eAAeN,YAAY;AAE3B,SAASO,kBAAkBA,CACzBD,KAAiC,EACU;EAC3C,OAAO;IACLE,GAAG,EAAE,KAAK;IACVC,MAAM,EAAE,KAAK;IACbC,IAAI,EAAE,KAAK;IACXC,KAAK,EAAE,KAAK;IACZ,GAAGL;EACL,CAAC;AACH;AAEA,MAAMF,MAAM,GAAGL,UAAU,CAACa,MAAM,CAAC;EAC/BP,IAAI,EAAE;IACJA,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=SafeAreaView.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/safe-area/SafeAreaView.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,4 @@
import { View } from 'react-native';
const SafeAreaView = View;
export default SafeAreaView;
//# sourceMappingURL=SafeAreaView.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","SafeAreaView"],"sourceRoot":"../../../../src","sources":["components/safe-area/SafeAreaView.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,YAAY,GAAGD,IAAI;AAEzB,eAAeC,YAAY","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
//# sourceMappingURL=types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/shared/types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,15 @@
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import BottomTabsAccessoryNativeComponent from '../../fabric/bottom-tabs/BottomTabsAccessoryNativeComponent';
import { StyleSheet } from 'react-native';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
export default function TabsAccessory(props) {
return /*#__PURE__*/React.createElement(BottomTabsAccessoryNativeComponent, _extends({}, props, {
collapsable: false,
style: [props.style, StyleSheet.absoluteFill]
}));
}
//# sourceMappingURL=TabsAccessory.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","BottomTabsAccessoryNativeComponent","StyleSheet","TabsAccessory","props","createElement","_extends","collapsable","style","absoluteFill"],"sourceRoot":"../../../../src","sources":["components/tabs/TabsAccessory.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,kCAAkC,MAAM,6DAA6D;AAE5G,SAASC,UAAU,QAAQ,cAAc;;AAEzC;AACA;AACA;AACA,eAAe,SAASC,aAAaA,CAACC,KAAyB,EAAE;EAC/D,oBACEJ,KAAA,CAAAK,aAAA,CAACJ,kCAAkC,EAAAK,QAAA,KAC7BF,KAAK;IACTG,WAAW,EAAE,KAAM;IACnBC,KAAK,EAAE,CAACJ,KAAK,CAACI,KAAK,EAAEN,UAAU,CAACO,YAAY;EAAE,EAC/C,CAAC;AAEN","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=TabsAccessory.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/tabs/TabsAccessory.types.ts"],"mappings":"","ignoreList":[]}

View File

@@ -0,0 +1,15 @@
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { StyleSheet } from 'react-native';
import BottomTabsAccessoryContentNativeComponent from '../../fabric/bottom-tabs/BottomTabsAccessoryContentNativeComponent';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
export default function TabsAccessoryContent(props) {
return /*#__PURE__*/React.createElement(BottomTabsAccessoryContentNativeComponent, _extends({}, props, {
collapsable: false,
style: [props.style, StyleSheet.absoluteFill]
}));
}
//# sourceMappingURL=TabsAccessoryContent.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","BottomTabsAccessoryContentNativeComponent","TabsAccessoryContent","props","createElement","_extends","collapsable","style","absoluteFill"],"sourceRoot":"../../../../src","sources":["components/tabs/TabsAccessoryContent.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AAEzC,OAAOC,yCAAyC,MAAM,oEAAoE;;AAE1H;AACA;AACA;AACA,eAAe,SAASC,oBAAoBA,CAACC,KAAgC,EAAE;EAC7E,oBACEJ,KAAA,CAAAK,aAAA,CAACH,yCAAyC,EAAAI,QAAA,KACpCF,KAAK;IACTG,WAAW,EAAE,KAAM;IACnBC,KAAK,EAAE,CAACJ,KAAK,CAACI,KAAK,EAAEP,UAAU,CAACQ,YAAY;EAAE,EAC/C,CAAC;AAEN","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=TabsAccessoryContent.types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/tabs/TabsAccessoryContent.types.ts"],"mappings":"","ignoreList":[]}

Some files were not shown because too many files have changed in this diff Show More