chore: add mobile app

This commit is contained in:
2026-02-07 22:33:02 +01:00
parent db34640acc
commit e89384ad4e
29327 changed files with 3886944 additions and 12 deletions
@@ -0,0 +1,5 @@
'use client';
import * as React from 'react';
export default /*#__PURE__*/React.createContext(undefined);
//# sourceMappingURL=TransitionProgressContext.js.map
@@ -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":[]}
@@ -0,0 +1,30 @@
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 = props => {
return /*#__PURE__*/React.createElement(ScreenContentWrapper, props);
};
if (process.env.NODE_ENV !== 'production') {
DebugContainer = props => {
const {
stackPresentation,
...rest
} = props;
if (Platform.OS === 'ios' && stackPresentation !== 'push' && stackPresentation !== 'formSheet') {
// This is necessary for LogBox
return /*#__PURE__*/React.createElement(AppContainer, null, /*#__PURE__*/React.createElement(ScreenContentWrapper, rest));
}
return /*#__PURE__*/React.createElement(ScreenContentWrapper, rest);
};
DebugContainer.displayName = 'DebugContainer';
}
export default DebugContainer;
//# sourceMappingURL=DebugContainer.js.map
@@ -0,0 +1 @@
{"version":3,"names":["React","Platform","AppContainer","ScreenContentWrapper","DebugContainer","props","createElement","process","env","NODE_ENV","stackPresentation","rest","OS","displayName"],"sourceRoot":"../../../src","sources":["components/DebugContainer.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAwB,cAAc;AACvD;;AAEA,OAAOC,YAAY,MAAM,iDAAiD;AAC1E,OAAOC,oBAAoB,MAAM,wBAAwB;AAQzD;AACA;AACA;AACA;AACA;AACA,IAAIC,cAAmD,GAAGC,KAAK,IAAI;EACjE,oBAAOL,KAAA,CAAAM,aAAA,CAACH,oBAAoB,EAAKE,KAAQ,CAAC;AAC5C,CAAC;AAED,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;EACzCL,cAAc,GAAIC,KAAqB,IAAK;IAC1C,MAAM;MAAEK,iBAAiB;MAAE,GAAGC;IAAK,CAAC,GAAGN,KAAK;IAE5C,IACEJ,QAAQ,CAACW,EAAE,KAAK,KAAK,IACrBF,iBAAiB,KAAK,MAAM,IAC5BA,iBAAiB,KAAK,WAAW,EACjC;MACA;MACA,oBACEV,KAAA,CAAAM,aAAA,CAACJ,YAAY,qBACXF,KAAA,CAAAM,aAAA,CAACH,oBAAoB,EAAKQ,IAAO,CACrB,CAAC;IAEnB;IAEA,oBAAOX,KAAA,CAAAM,aAAA,CAACH,oBAAoB,EAAKQ,IAAO,CAAC;EAC3C,CAAC;EAEDP,cAAc,CAACS,WAAW,GAAG,gBAAgB;AAC/C;AAEA,eAAeT,cAAc","ignoreList":[]}
@@ -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
@@ -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":[]}
@@ -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
@@ -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":[]}
@@ -0,0 +1,3 @@
import { View } from 'react-native';
export default View;
//# sourceMappingURL=FullWindowOverlay.web.js.map
@@ -0,0 +1 @@
{"version":3,"names":["View"],"sourceRoot":"../../../src","sources":["components/FullWindowOverlay.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAGnC,eAAeA,IAAI","ignoreList":[]}
@@ -0,0 +1,207 @@
'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 { EDGE_TO_EDGE, transformEdgeToEdgeProps } from './helpers/edge-to-edge';
import { SHEET_DIMMED_ALWAYS, resolveSheetAllowedDetents, resolveSheetInitialDetentIndex, resolveSheetLargestUndimmedDetent } from './helpers/sheet';
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,
// 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,
gestureResponseDistance,
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
};
setRef(ref);
} 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,
sheetGrabberVisible: sheetGrabberVisible,
sheetCornerRadius: sheetCornerRadius,
sheetExpandsWhenScrolledToEdge: sheetExpandsWhenScrolledToEdge,
sheetInitialDetent: resolvedSheetInitialDetentIndex,
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
})
}), !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({}, EDGE_TO_EDGE ? transformEdgeToEdgeProps(props) : props, {
ref: ref
}));
});
Screen.displayName = 'Screen';
export default Screen;
//# sourceMappingURL=Screen.js.map
File diff suppressed because one or more lines are too long
@@ -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
@@ -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,EAAgB;IACpB,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":[]}
@@ -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
@@ -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":[]}
@@ -0,0 +1,4 @@
import { View } from 'react-native';
const ScreenContainer = View;
export default ScreenContainer;
//# sourceMappingURL=ScreenContainer.web.js.map
@@ -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":[]}
@@ -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
@@ -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":[]}
@@ -0,0 +1,4 @@
import { View } from 'react-native';
const ScreenContentWrapper = View;
export default ScreenContentWrapper;
//# sourceMappingURL=ScreenContentWrapper.web.js.map
@@ -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":[]}
@@ -0,0 +1,4 @@
import { View } from 'react-native';
const ScreenContentWrapper = View;
export default ScreenContentWrapper;
//# sourceMappingURL=ScreenContentWrapper.windows.js.map
@@ -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":[]}
@@ -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
@@ -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":[]}
@@ -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
@@ -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":[]}
@@ -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
@@ -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":[]}
@@ -0,0 +1,63 @@
'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';
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 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
@@ -0,0 +1 @@
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","React","GHContext","RNSScreensRefContext","warnOnce","ScreenStackNativeComponent","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"],"sourceRoot":"../../../src","sources":["components/ScreenStack.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
import { View } from 'react-native';
const ScreenStack = View;
export default ScreenStack;
//# sourceMappingURL=ScreenStack.web.js.map
@@ -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":[]}
@@ -0,0 +1,82 @@
'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';
// Native components
import ScreenStackHeaderConfigNativeComponent from '../fabric/ScreenStackHeaderConfigNativeComponent';
import ScreenStackHeaderSubviewNativeComponent from '../fabric/ScreenStackHeaderSubviewNativeComponent';
import { EDGE_TO_EDGE } from './helpers/edge-to-edge';
export const ScreenStackHeaderSubview = ScreenStackHeaderSubviewNativeComponent;
export const ScreenStackHeaderConfig = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(ScreenStackHeaderConfigNativeComponent, _extends({}, props, {
ref: ref,
topInsetEnabled: EDGE_TO_EDGE ? true : props.topInsetEnabled,
style: styles.headerConfig,
pointerEvents: "box-none"
})));
ScreenStackHeaderConfig.displayName = 'ScreenStackHeaderConfig';
export const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/React.createElement(ScreenStackHeaderSubview, {
type: "back",
style: styles.headerSubview
}, /*#__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",
style: [styles.headerSubview, style]
}));
};
export const ScreenStackHeaderLeftView = props => {
const {
style,
...rest
} = props;
return /*#__PURE__*/React.createElement(ScreenStackHeaderSubview, _extends({}, rest, {
type: "left",
style: [styles.headerSubview, style]
}));
};
export const ScreenStackHeaderCenterView = props => {
const {
style,
...rest
} = props;
return /*#__PURE__*/React.createElement(ScreenStackHeaderSubview, _extends({}, rest, {
type: "center",
style: [styles.headerSubviewCenter, style]
}));
};
export const ScreenStackHeaderSearchBarView = props => /*#__PURE__*/React.createElement(ScreenStackHeaderSubview, _extends({}, props, {
type: "searchBar",
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
@@ -0,0 +1 @@
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","React","Image","Platform","StyleSheet","ScreenStackHeaderConfigNativeComponent","ScreenStackHeaderSubviewNativeComponent","EDGE_TO_EDGE","ScreenStackHeaderSubview","ScreenStackHeaderConfig","forwardRef","props","ref","createElement","topInsetEnabled","style","styles","headerConfig","pointerEvents","displayName","ScreenStackHeaderBackButtonImage","type","headerSubview","resizeMode","fadeDuration","ScreenStackHeaderRightView","rest","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","headerSubviewCenter","ScreenStackHeaderSearchBarView","create","flexDirection","alignItems","justifyContent","flexShrink","position","width","OS","undefined"],"sourceRoot":"../../../src","sources":["components/ScreenStackHeaderConfig.tsx"],"mappings":"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","ignoreList":[]}
@@ -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
@@ -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,GAAIL,KAAgB,iBACzDF,KAAA,CAAAG,aAAA,CAACJ,IAAI,EAAKG,KAAQ,CACnB;AAED,OAAO,MAAMM,yBAAyB,GAAIN,KAAgB,iBACxDF,KAAA,CAAAG,aAAA,CAACJ,IAAI,EAAKG,KAAQ,CACnB;AAED,OAAO,MAAMO,2BAA2B,GAAIP,KAAgB,iBAC1DF,KAAA,CAAAG,aAAA,CAACJ,IAAI,EAAKG,KAAQ,CACnB;AAED,OAAO,MAAMQ,8BAA8B,GACzCR,KAAgB,iBACAF,KAAA,CAAAG,aAAA,CAACJ,IAAI,EAAKG,KAAQ,CAAC;AAErC,OAAO,MAAMS,uBAAuB,GAClCT,KAAmC,iBACnBF,KAAA,CAAAG,aAAA,CAACJ,IAAI,EAAKG,KAAQ,CAAC;AAErC,OAAO,MAAMU,wBAEZ,GAAGb,IAAI","ignoreList":[]}
@@ -0,0 +1,98 @@
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';
function ScreenStackItem({
children,
headerConfig,
activityState,
shouldFreeze,
stackPresentation,
sheetAllowedDetents,
contentStyle,
style,
screenId,
// 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 isHeaderInModal = Platform.OS === 'android' ? false : stackPresentation !== 'push' && headerConfig?.hidden === false;
const headerHiddenPreviousRef = React.useRef(headerConfig?.hidden);
React.useEffect(() => {
warnOnce(Platform.OS !== 'android' && stackPresentation !== 'push' && headerHiddenPreviousRef.current !== headerConfig?.hidden, `Dynamically changing header's visibility in modals will result in remounting the screen and losing all local state.`);
headerHiddenPreviousRef.current = headerConfig?.hidden;
}, [headerConfig?.hidden, stackPresentation]);
const content = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DebugContainer, {
style: [stackPresentation === 'formSheet' ? Platform.OS === 'ios' ? styles.absolute : sheetAllowedDetents === 'fitToContents' ? null : styles.container : styles.container, contentStyle],
stackPresentation: stackPresentation ?? 'push'
}, children), /*#__PURE__*/React.createElement(ScreenStackHeaderConfig, headerConfig), stackPresentation === 'formSheet' && unstable_sheetFooter && /*#__PURE__*/React.createElement(FooterComponent, null, unstable_sheetFooter()));
// We take backgroundColor from contentStyle and apply it on Screen.
// This allows to workaround one issue with truncated
// content with formSheet presentation.
let internalScreenStyle;
if (stackPresentation === 'formSheet' && contentStyle) {
const flattenContentStyles = StyleSheet.flatten(contentStyle);
internalScreenStyle = {
backgroundColor: flattenContentStyles?.backgroundColor
};
}
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: stackPresentation,
hasLargeHeader: headerConfig?.largeTitle ?? false,
sheetAllowedDetents: sheetAllowedDetents,
style: [style, internalScreenStyle]
}, 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
}, content)) : content);
}
export default /*#__PURE__*/React.forwardRef(ScreenStackItem);
const styles = StyleSheet.create({
container: {
flex: 1
},
absolute: {
position: 'absolute',
top: 0,
start: 0,
end: 0
}
});
//# sourceMappingURL=ScreenStackItem.js.map
@@ -0,0 +1 @@
{"version":3,"names":["React","Platform","StyleSheet","warnOnce","DebugContainer","ScreenStackHeaderConfig","Screen","ScreenStack","RNSScreensRefContext","FooterComponent","ScreenStackItem","children","headerConfig","activityState","shouldFreeze","stackPresentation","sheetAllowedDetents","contentStyle","style","screenId","unstable_sheetFooter","rest","ref","currentScreenRef","useRef","screenRefs","useContext","useImperativeHandle","current","isHeaderInModal","OS","hidden","headerHiddenPreviousRef","useEffect","content","createElement","Fragment","styles","absolute","container","internalScreenStyle","flattenContentStyles","flatten","backgroundColor","_extends","node","console","warn","currentRefs","enabled","isNativeStack","hasLargeHeader","largeTitle","absoluteFill","forwardRef","create","flex","position","top","start","end"],"sourceRoot":"../../../src","sources":["components/ScreenStackItem.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,57 @@
'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 { 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;
}
return /*#__PURE__*/React.createElement(NativeSearchBar, _extends({
ref: searchBarRef
}, props, {
onSearchFocus: props.onFocus,
onSearchBlur: props.onBlur,
onSearchButtonPress: props.onSearchButtonPress,
onCancelButtonPress: props.onCancelButtonPress,
onChangeText: props.onChangeText
}));
}
export default /*#__PURE__*/React.forwardRef(SearchBar);
//# sourceMappingURL=SearchBar.js.map
@@ -0,0 +1 @@
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","React","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","createElement","onSearchFocus","onFocus","onSearchBlur","onBlur","onSearchButtonPress","onCancelButtonPress","onChangeText","forwardRef"],"sourceRoot":"../../../src","sources":["components/SearchBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
import { View } from 'react-native';
const SearchBar = View;
export default SearchBar;
//# sourceMappingURL=SearchBar.web.js.map
@@ -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":[]}
@@ -0,0 +1,50 @@
'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 { StyleSheet, findNodeHandle } from 'react-native';
import BottomTabsNativeComponent from '../../fabric/bottom-tabs/BottomTabsNativeComponent';
import featureFlags from '../../flags';
import { bottomTabsDebugLog } from '../../private/logging';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function BottomTabs(props) {
bottomTabsDebugLog(`BottomTabs render`);
const {
onNativeFocusChange,
experimentalControlNavigationStateInJS = featureFlags.experiment.controlledBottomTabs,
...filteredProps
} = props;
const componentNodeRef = React.useRef(null);
const componentNodeHandle = React.useRef(-1);
React.useEffect(() => {
if (componentNodeRef.current != null) {
componentNodeHandle.current = findNodeHandle(componentNodeRef.current) ?? -1;
} else {
componentNodeHandle.current = -1;
}
}, []);
const onNativeFocusChangeCallback = React.useCallback(event => {
bottomTabsDebugLog(`BottomTabs [${componentNodeHandle.current ?? -1}] onNativeFocusChange: ${JSON.stringify(event.nativeEvent)}`);
onNativeFocusChange?.(event);
}, [onNativeFocusChange]);
return /*#__PURE__*/React.createElement(BottomTabsNativeComponent, _extends({
style: styles.fillParent,
onNativeFocusChange: onNativeFocusChangeCallback,
controlNavigationStateInJS: experimentalControlNavigationStateInJS
// @ts-ignore suppress ref - debug only
,
ref: componentNodeRef
}, filteredProps), filteredProps.children);
}
export default BottomTabs;
const styles = StyleSheet.create({
fillParent: {
flex: 1,
width: '100%',
height: '100%'
}
});
//# sourceMappingURL=BottomTabs.js.map
@@ -0,0 +1 @@
{"version":3,"names":["_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","React","StyleSheet","findNodeHandle","BottomTabsNativeComponent","featureFlags","bottomTabsDebugLog","BottomTabs","props","onNativeFocusChange","experimentalControlNavigationStateInJS","experiment","controlledBottomTabs","filteredProps","componentNodeRef","useRef","componentNodeHandle","useEffect","current","onNativeFocusChangeCallback","useCallback","event","JSON","stringify","nativeEvent","createElement","style","styles","fillParent","controlNavigationStateInJS","ref","children","create","flex","width","height"],"sourceRoot":"../../../../src","sources":["components/bottom-tabs/BottomTabs.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;AAEb,OAAOO,KAAK,MAAM,OAAO;AACzB,SACEC,UAAU,EACVC,cAAc,QAET,cAAc;AACrB,OAAOC,yBAAyB,MAEzB,oDAAoD;AAC3D,OAAOC,YAAY,MAAM,aAAa;AAKtC,SAASC,kBAAkB,QAAQ,uBAAuB;;AAE1D;AACA;AACA;AACA,SAASC,UAAUA,CAACC,KAAsB,EAAE;EAC1CF,kBAAkB,CAAC,mBAAmB,CAAC;EAEvC,MAAM;IACJG,mBAAmB;IACnBC,sCAAsC,GAAGL,YAAY,CAACM,UAAU,CAC7DC,oBAAoB;IACvB,GAAGC;EACL,CAAC,GAAGL,KAAK;EAET,MAAMM,gBAAgB,GACpBb,KAAK,CAACc,MAAM,CAAkD,IAAI,CAAC;EACrE,MAAMC,mBAAmB,GAAGf,KAAK,CAACc,MAAM,CAAS,CAAC,CAAC,CAAC;EAEpDd,KAAK,CAACgB,SAAS,CAAC,MAAM;IACpB,IAAIH,gBAAgB,CAACI,OAAO,IAAI,IAAI,EAAE;MACpCF,mBAAmB,CAACE,OAAO,GACzBf,cAAc,CAACW,gBAAgB,CAACI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,MAAM;MACLF,mBAAmB,CAACE,OAAO,GAAG,CAAC,CAAC;IAClC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,2BAA2B,GAAGlB,KAAK,CAACmB,WAAW,CAClDC,KAAmD,IAAK;IACvDf,kBAAkB,CAChB,eACEU,mBAAmB,CAACE,OAAO,IAAI,CAAC,CAAC,0BACTI,IAAI,CAACC,SAAS,CAACF,KAAK,CAACG,WAAW,CAAC,EAC7D,CAAC;IACDf,mBAAmB,GAAGY,KAAK,CAAC;EAC9B,CAAC,EACD,CAACZ,mBAAmB,CACtB,CAAC;EAED,oBACER,KAAA,CAAAwB,aAAA,CAACrB,yBAAyB,EAAAhB,QAAA;IACxBsC,KAAK,EAAEC,MAAM,CAACC,UAAW;IACzBnB,mBAAmB,EAAEU,2BAA4B;IACjDU,0BAA0B,EAAEnB;IAC5B;IAAA;IACAoB,GAAG,EAAEhB;EAAiB,GAClBD,aAAa,GAChBA,aAAa,CAACkB,QACU,CAAC;AAEhC;AAEA,eAAexB,UAAU;AAEzB,MAAMoB,MAAM,GAAGzB,UAAU,CAAC8B,MAAM,CAAC;EAC/BJ,UAAU,EAAE;IACVK,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=BottomTabs.types.js.map
@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/bottom-tabs/BottomTabs.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
import { View } from 'react-native';
const BottomTabs = View;
export default BottomTabs;
//# sourceMappingURL=BottomTabs.web.js.map
@@ -0,0 +1 @@
{"version":3,"names":["View","BottomTabs"],"sourceRoot":"../../../../src","sources":["components/bottom-tabs/BottomTabs.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,UAAU,GAAGD,IAAI;AAEvB,eAAeC,UAAU","ignoreList":[]}
@@ -0,0 +1,216 @@
'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 { Freeze } from 'react-freeze';
import { Image, StyleSheet, findNodeHandle, processColor } from 'react-native';
import { freezeEnabled } from '../../core';
import BottomTabsScreenNativeComponent from '../../fabric/bottom-tabs/BottomTabsScreenNativeComponent';
import { featureFlags } from '../../flags';
import { bottomTabsDebugLog } from '../../private/logging';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function BottomTabsScreen(props) {
const componentNodeRef = React.useRef(null);
const componentNodeHandle = React.useRef(-1);
React.useEffect(() => {
if (componentNodeRef.current != null) {
componentNodeHandle.current = findNodeHandle(componentNodeRef.current) ?? -1;
} else {
componentNodeHandle.current = -1;
}
}, []);
const [nativeViewIsVisible, setNativeViewIsVisible] = React.useState(false);
const {
onWillAppear,
onDidAppear,
onWillDisappear,
onDidDisappear,
isFocused = false,
freezeContents,
icon,
iconResource,
selectedIcon,
standardAppearance,
scrollEdgeAppearance,
...rest
} = props;
const shouldFreeze = shouldFreezeScreen(nativeViewIsVisible, isFocused, freezeContents);
const onWillAppearCallback = React.useCallback(event => {
bottomTabsDebugLog(`TabsScreen [${componentNodeHandle.current}] onWillAppear received`);
setNativeViewIsVisible(true);
onWillAppear?.(event);
}, [onWillAppear]);
const onDidAppearCallback = React.useCallback(event => {
bottomTabsDebugLog(`TabsScreen [${componentNodeHandle.current}] onDidAppear received`);
onDidAppear?.(event);
}, [onDidAppear]);
const onWillDisappearCallback = React.useCallback(event => {
bottomTabsDebugLog(`TabsScreen [${componentNodeHandle.current}] onWillDisappear received`);
onWillDisappear?.(event);
}, [onWillDisappear]);
const onDidDisappearCallback = React.useCallback(event => {
bottomTabsDebugLog(`TabsScreen [${componentNodeHandle.current}] onDidDisappear received`);
setNativeViewIsVisible(false);
onDidDisappear?.(event);
}, [onDidDisappear]);
bottomTabsDebugLog(`TabsScreen [${componentNodeHandle.current ?? -1}] render; tabKey: ${rest.tabKey} shouldFreeze: ${shouldFreeze}, isFocused: ${isFocused} nativeViewIsVisible: ${nativeViewIsVisible}`);
const iconProps = parseIconsToNativeProps(icon, selectedIcon);
let parsedIconResource;
if (iconResource) {
parsedIconResource = Image.resolveAssetSource(iconResource);
if (!parsedIconResource) {
console.error('[RNScreens] failed to resolve an asset for bottom tab icon');
}
}
return /*#__PURE__*/React.createElement(BottomTabsScreenNativeComponent, _extends({
collapsable: false,
style: styles.fillParent,
onWillAppear: onWillAppearCallback,
onDidAppear: onDidAppearCallback,
onWillDisappear: onWillDisappearCallback,
onDidDisappear: onDidDisappearCallback,
isFocused: isFocused
// I'm keeping undefined as a fallback if `Image.resolveAssetSource` has failed for some reason.
// It won't render any icon, but it will prevent from crashing on the native side which is expecting
// ReadableMap. Passing `iconResource` directly will result in crash, because `require` API is returning
// double as a value.
,
iconResource: parsedIconResource || undefined
}, iconProps, {
standardAppearance: mapAppearanceToNativeProp(standardAppearance),
scrollEdgeAppearance: mapAppearanceToNativeProp(scrollEdgeAppearance)
// @ts-ignore - This is debug only anyway
,
ref: componentNodeRef
}, rest), /*#__PURE__*/React.createElement(Freeze, {
freeze: shouldFreeze,
placeholder: rest.placeholder
}, rest.children));
}
function mapAppearanceToNativeProp(appearance) {
if (!appearance) return undefined;
const {
stacked,
inline,
compactInline,
tabBarBackgroundColor,
tabBarShadowColor
} = appearance;
return {
...appearance,
stacked: mapItemAppearanceToNativeProp(stacked),
inline: mapItemAppearanceToNativeProp(inline),
compactInline: mapItemAppearanceToNativeProp(compactInline),
tabBarBackgroundColor: processColor(tabBarBackgroundColor),
tabBarShadowColor: processColor(tabBarShadowColor)
};
}
function mapItemAppearanceToNativeProp(itemAppearance) {
if (!itemAppearance) return undefined;
const {
normal,
selected,
focused,
disabled
} = itemAppearance;
return {
...itemAppearance,
normal: mapItemStateAppearanceToNativeProp(normal),
selected: mapItemStateAppearanceToNativeProp(selected),
focused: mapItemStateAppearanceToNativeProp(focused),
disabled: mapItemStateAppearanceToNativeProp(disabled)
};
}
function mapItemStateAppearanceToNativeProp(itemStateAppearance) {
if (!itemStateAppearance) return undefined;
const {
tabBarItemTitleFontColor,
tabBarItemIconColor,
tabBarItemBadgeBackgroundColor,
tabBarItemTitleFontWeight
} = itemStateAppearance;
return {
...itemStateAppearance,
tabBarItemTitleFontColor: processColor(tabBarItemTitleFontColor),
tabBarItemIconColor: processColor(tabBarItemIconColor),
tabBarItemBadgeBackgroundColor: processColor(tabBarItemBadgeBackgroundColor),
tabBarItemTitleFontWeight: tabBarItemTitleFontWeight !== undefined ? String(tabBarItemTitleFontWeight) : undefined
};
}
function shouldFreezeScreen(nativeViewVisible, screenFocused, freezeOverride) {
if (!freezeEnabled()) {
return false;
}
if (freezeOverride !== undefined) {
return freezeOverride;
}
if (featureFlags.experiment.controlledBottomTabs) {
// If the tabs are JS controlled, we want to freeze only when given view is not focused && it is not currently visible
return !nativeViewVisible && !screenFocused;
}
return !nativeViewVisible;
}
function parseIconToNativeProps(icon) {
if (!icon) {
return {};
}
if ('sfSymbolName' in icon) {
// iOS-specific: SFSymbol usage
return {
iconType: 'sfSymbol',
iconSfSymbolName: icon.sfSymbolName
};
} else if ('imageSource' in icon) {
return {
iconType: 'image',
iconImageSource: icon.imageSource
};
} else if ('templateSource' in icon) {
// iOS-specifig: image as a template usage
return {
iconType: 'template',
iconImageSource: icon.templateSource
};
} else {
// iOS-specific: SFSymbol, image as a template usage
throw new Error('[RNScreens] Incorrect icon format. You must provide sfSymbolName, imageSource or templateSource.');
}
}
function parseIconsToNativeProps(icon, selectedIcon) {
const {
iconImageSource,
iconSfSymbolName,
iconType
} = parseIconToNativeProps(icon);
const {
iconImageSource: selectedIconImageSource,
iconSfSymbolName: selectedIconSfSymbolName,
iconType: selectedIconType
} = parseIconToNativeProps(selectedIcon);
if (iconType !== undefined && selectedIconType !== undefined && iconType !== selectedIconType) {
throw new Error('[RNScreens] icon and selectedIcon must be same type.');
} else if (iconType === undefined && selectedIconType !== undefined) {
// iOS-specific: UIKit requirement
throw new Error('[RNScreens] To use selectedIcon prop, the icon prop must also be provided.');
}
return {
iconType,
iconImageSource,
iconSfSymbolName,
selectedIconImageSource,
selectedIconSfSymbolName
};
}
export default BottomTabsScreen;
const styles = StyleSheet.create({
fillParent: {
position: 'absolute',
flex: 1,
width: '100%',
height: '100%'
}
});
//# sourceMappingURL=BottomTabsScreen.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=BottomTabsScreen.types.js.map
@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/bottom-tabs/BottomTabsScreen.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
import { View } from 'react-native';
const BottomTabsScreen = View;
export default BottomTabsScreen;
//# sourceMappingURL=BottomTabsScreen.web.js.map
@@ -0,0 +1 @@
{"version":3,"names":["View","BottomTabsScreen"],"sourceRoot":"../../../../src","sources":["components/bottom-tabs/BottomTabsScreen.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,gBAAgB,GAAGD,IAAI;AAE7B,eAAeC,gBAAgB","ignoreList":[]}
@@ -0,0 +1,20 @@
import React from 'react';
import { StyleSheet } from 'react-native';
import ScreenStackHostNativeComponent from '../../fabric/gamma/ScreenStackHostNativeComponent';
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function ScreenStackHost({
children
}) {
return /*#__PURE__*/React.createElement(ScreenStackHostNativeComponent, {
style: styles.container
}, children);
}
const styles = StyleSheet.create({
container: {
flex: 1
}
});
export default ScreenStackHost;
//# sourceMappingURL=ScreenStackHost.js.map
@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","ScreenStackHostNativeComponent","ScreenStackHost","children","createElement","style","styles","container","create","flex"],"sourceRoot":"../../../../src","sources":["components/gamma/ScreenStackHost.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AAGzC,OAAOC,8BAA8B,MAAM,mDAAmD;AAU9F;AACA;AACA;AACA,SAASC,eAAeA,CAAC;EAAEC;AAA+B,CAAC,EAAE;EAC3D,oBACEJ,KAAA,CAAAK,aAAA,CAACH,8BAA8B;IAACI,KAAK,EAAEC,MAAM,CAACC;EAAU,GACrDJ,QAC6B,CAAC;AAErC;AAEA,MAAMG,MAAM,GAAGN,UAAU,CAACQ,MAAM,CAAC;EAC/BD,SAAS,EAAE;IACTE,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,eAAeP,eAAe","ignoreList":[]}
@@ -0,0 +1,4 @@
import { View } from 'react-native';
const ScreenStackHost = View;
export default ScreenStackHost;
//# sourceMappingURL=ScreenStackHost.web.js.map
@@ -0,0 +1 @@
{"version":3,"names":["View","ScreenStackHost"],"sourceRoot":"../../../../src","sources":["components/gamma/ScreenStackHost.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAmB,cAAc;AAQ9C,MAAMC,eAAe,GAAGD,IAAI;AAE5B,eAAeC,eAAe","ignoreList":[]}
@@ -0,0 +1,50 @@
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';
// 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 displayModeForSplitViewCompatibilityMap = {
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 displayModeForSplitViewCompatibilityMap[splitBehavior].includes(displayMode);
};
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function SplitViewHost(props) {
const {
preferredDisplayMode,
preferredSplitBehavior
} = props;
React.useEffect(() => {
if (preferredDisplayMode && preferredSplitBehavior) {
const isValid = isValidDisplayModeForSplitBehavior(preferredDisplayMode, preferredSplitBehavior);
if (!isValid) {
const validDisplayModes = displayModeForSplitViewCompatibilityMap[preferredSplitBehavior];
console.warn(`Invalid display mode "${preferredDisplayMode}" for split behavior "${preferredSplitBehavior}".` + `\nValid modes for "${preferredSplitBehavior}" are: ${validDisplayModes.join(', ')}.`);
}
}
}, [preferredDisplayMode, preferredSplitBehavior]);
return /*#__PURE__*/React.createElement(SplitViewHostNativeComponent, _extends({}, props, {
style: styles.container
}), props.children);
}
const styles = StyleSheet.create({
container: {
flex: 1
}
});
export default SplitViewHost;
//# sourceMappingURL=SplitViewHost.js.map
@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","SplitViewHostNativeComponent","displayModeForSplitViewCompatibilityMap","tile","overlay","displace","automatic","isValidDisplayModeForSplitBehavior","displayMode","splitBehavior","includes","SplitViewHost","props","preferredDisplayMode","preferredSplitBehavior","useEffect","isValid","validDisplayModes","console","warn","join","createElement","_extends","style","styles","container","children","create","flex"],"sourceRoot":"../../../../src","sources":["components/gamma/SplitViewHost.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,4BAA4B,MAAM,iDAAiD;AAO1F;AACA;AACA;AACA;AACA,MAAMC,uCAGL,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,WAAiC,EACjCC,aAAqC,KAClC;EACH,IAAIA,aAAa,KAAK,WAAW,EAAE;IACjC;IACA,OAAO,IAAI;EACb;EACA,OAAOP,uCAAuC,CAACO,aAAa,CAAC,CAACC,QAAQ,CACpEF,WACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA,SAASG,aAAaA,CAACC,KAAyB,EAAE;EAChD,MAAM;IAAEC,oBAAoB;IAAEC;EAAuB,CAAC,GAAGF,KAAK;EAE9Db,KAAK,CAACgB,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,uCAAuC,CAACY,sBAAsB,CAAC;QACjEI,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,oBACEf,KAAA,CAAAsB,aAAA,CAACpB,4BAA4B,EAAAqB,QAAA,KAAKV,KAAK;IAAEW,KAAK,EAAEC,MAAM,CAACC;EAAU,IAC9Db,KAAK,CAACc,QACqB,CAAC;AAEnC;AAEA,MAAMF,MAAM,GAAGxB,UAAU,CAAC2B,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAEF,eAAejB,aAAa","ignoreList":[]}
@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=SplitViewHost.types.js.map
@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/gamma/SplitViewHost.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,4 @@
import { View } from 'react-native';
const SplitViewHost = View;
export default SplitViewHost;
//# sourceMappingURL=SplitViewHost.web.js.map
@@ -0,0 +1 @@
{"version":3,"names":["View","SplitViewHost"],"sourceRoot":"../../../../src","sources":["components/gamma/SplitViewHost.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,aAAa,GAAGD,IAAI;AAE1B,eAAeC,aAAa","ignoreList":[]}
@@ -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 SplitViewScreen = {
Column,
Inspector
};
export default SplitViewScreen;
//# sourceMappingURL=SplitViewScreen.js.map
@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","SplitViewScreenNativeComponent","Column","props","createElement","_extends","columnType","style","absoluteFill","children","Inspector","SplitViewScreen"],"sourceRoot":"../../../../src","sources":["components/gamma/SplitViewScreen.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,8BAA8B,MAAM,mDAAmD;AAG9F;AACA;AACA;AACA,SAASC,MAAMA,CAACC,KAA2B,EAAE;EAC3C,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,KAA2B,EAAE;EAC9C,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,eAAe,GAAG;EACtBT,MAAM;EACNQ;AACF,CAAC;AAED,eAAeC,eAAe","ignoreList":[]}
@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=SplitViewScreen.types.js.map
@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/gamma/SplitViewScreen.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,8 @@
import { View } from 'react-native';
const Column = View;
const Inspector = View;
export default {
Column,
Inspector
};
//# sourceMappingURL=SplitViewScreen.web.js.map
@@ -0,0 +1 @@
{"version":3,"names":["View","Column","Inspector"],"sourceRoot":"../../../../src","sources":["components/gamma/SplitViewScreen.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,MAAMC,MAAM,GAAGD,IAAI;AACnB,MAAME,SAAS,GAAGF,IAAI;AAEtB,eAAe;EAAEC,MAAM;EAAEC;AAAU,CAAC","ignoreList":[]}
@@ -0,0 +1,44 @@
import React from 'react';
import { StyleSheet } from 'react-native';
import StackScreenNativeComponent from '../../fabric/gamma/StackScreenNativeComponent';
export const StackScreenLifecycleState = {
INITIAL: 0,
DETACHED: 1,
ATTACHED: 2
};
/**
* EXPERIMENTAL API, MIGHT CHANGE W/O ANY NOTICE
*/
function StackScreen({
children,
// Control
maxLifecycleState,
screenKey,
// Events
onWillAppear,
onWillDisappear,
onDidAppear,
onDidDisappear,
// Custom events
onPop
}) {
const handleOnDidDisappear = React.useCallback(e => {
onDidDisappear?.(e);
onPop?.(screenKey);
}, [onDidDisappear, onPop, screenKey]);
return /*#__PURE__*/React.createElement(StackScreenNativeComponent, {
style: StyleSheet.absoluteFill
// Control
,
maxLifecycleState: maxLifecycleState,
screenKey: screenKey
// Events
,
onWillAppear: onWillAppear,
onDidAppear: onDidAppear,
onWillDisappear: onWillDisappear,
onDidDisappear: handleOnDidDisappear
}, children);
}
export default StackScreen;
//# sourceMappingURL=StackScreen.js.map
@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","StackScreenNativeComponent","StackScreenLifecycleState","INITIAL","DETACHED","ATTACHED","StackScreen","children","maxLifecycleState","screenKey","onWillAppear","onWillDisappear","onDidAppear","onDidDisappear","onPop","handleOnDidDisappear","useCallback","e","createElement","style","absoluteFill"],"sourceRoot":"../../../../src","sources":["components/gamma/StackScreen.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AACzC,OAAOC,0BAA0B,MAAM,+CAA+C;AAItF,OAAO,MAAMC,yBAAyB,GAAG;EACvCC,OAAO,EAAE,CAAC;EACVC,QAAQ,EAAE,CAAC;EACXC,QAAQ,EAAE;AACZ,CAAU;AAaV;AACA;AACA;AACA,SAASC,WAAWA,CAAC;EACnBC,QAAQ;EACR;EACAC,iBAAiB;EACjBC,SAAS;EACT;EACAC,YAAY;EACZC,eAAe;EACfC,WAAW;EACXC,cAAc;EACd;EACAC;AACgB,CAAC,EAAE;EACnB,MAAMC,oBAAoB,GAAGhB,KAAK,CAACiB,WAAW,CAC3CC,CAA8C,IAAK;IAClDJ,cAAc,GAAGI,CAAC,CAAC;IACnBH,KAAK,GAAGL,SAAS,CAAC;EACpB,CAAC,EACD,CAACI,cAAc,EAAEC,KAAK,EAAEL,SAAS,CACnC,CAAC;EAED,oBACEV,KAAA,CAAAmB,aAAA,CAACjB,0BAA0B;IACzBkB,KAAK,EAAEnB,UAAU,CAACoB;IAClB;IAAA;IACAZ,iBAAiB,EAAEA,iBAAkB;IACrCC,SAAS,EAAEA;IACX;IAAA;IACAC,YAAY,EAAEA,YAAa;IAC3BE,WAAW,EAAEA,WAAY;IACzBD,eAAe,EAAEA,eAAgB;IACjCE,cAAc,EAAEE;EAAqB,GACpCR,QACyB,CAAC;AAEjC;AAEA,eAAeD,WAAW","ignoreList":[]}
@@ -0,0 +1,9 @@
import { View } from 'react-native';
export const StackScreenLifecycleState = {
INITIAL: 0,
DETACHED: 1,
ATTACHED: 2
};
const StackScreen = View;
export default StackScreen;
//# sourceMappingURL=StackScreen.web.js.map
@@ -0,0 +1 @@
{"version":3,"names":["View","StackScreenLifecycleState","INITIAL","DETACHED","ATTACHED","StackScreen"],"sourceRoot":"../../../../src","sources":["components/gamma/StackScreen.web.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAmB,cAAc;AAI9C,OAAO,MAAMC,yBAAyB,GAAG;EACvCC,OAAO,EAAE,CAAC;EACVC,QAAQ,EAAE,CAAC;EACXC,QAAQ,EAAE;AACZ,CAAU;AAOV,MAAMC,WAAW,GAAGL,IAAI;AAExB,eAAeK,WAAW","ignoreList":[]}
@@ -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
@@ -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":[]}
@@ -0,0 +1,22 @@
import { controlEdgeToEdgeValues, isEdgeToEdge } from 'react-native-is-edge-to-edge';
export const EDGE_TO_EDGE = isEdgeToEdge();
export function transformEdgeToEdgeProps(props) {
const {
// Filter out edge-to-edge related props
statusBarColor,
statusBarTranslucent,
navigationBarColor,
navigationBarTranslucent,
...rest
} = props;
if (__DEV__) {
controlEdgeToEdgeValues({
statusBarColor,
statusBarTranslucent,
navigationBarColor,
navigationBarTranslucent
});
}
return rest;
}
//# sourceMappingURL=edge-to-edge.js.map
@@ -0,0 +1 @@
{"version":3,"names":["controlEdgeToEdgeValues","isEdgeToEdge","EDGE_TO_EDGE","transformEdgeToEdgeProps","props","statusBarColor","statusBarTranslucent","navigationBarColor","navigationBarTranslucent","rest","__DEV__"],"sourceRoot":"../../../../src","sources":["components/helpers/edge-to-edge.tsx"],"mappings":"AAAA,SACEA,uBAAuB,EACvBC,YAAY,QACP,8BAA8B;AAGrC,OAAO,MAAMC,YAAY,GAAGD,YAAY,CAAC,CAAC;AAE1C,OAAO,SAASE,wBAAwBA,CAACC,KAAkB,EAAe;EACxE,MAAM;IACJ;IACAC,cAAc;IACdC,oBAAoB;IACpBC,kBAAkB;IAClBC,wBAAwB;IACxB,GAAGC;EACL,CAAC,GAAGL,KAAK;EAET,IAAIM,OAAO,EAAE;IACXV,uBAAuB,CAAC;MACtBK,cAAc;MACdC,oBAAoB;MACpBC,kBAAkB;MAClBC;IACF,CAAC,CAAC;EACJ;EAEA,OAAOC,IAAI;AACb","ignoreList":[]}
@@ -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
@@ -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":[]}
@@ -0,0 +1,9 @@
import { useEffect, useRef } from 'react';
export function usePrevious(state) {
const ref = useRef();
useEffect(() => {
ref.current = state;
});
return ref.current;
}
//# sourceMappingURL=usePrevious.js.map
@@ -0,0 +1 @@
{"version":3,"names":["useEffect","useRef","usePrevious","state","ref","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,CAAI,CAAC;EAEvBD,SAAS,CAAC,MAAM;IACdI,GAAG,CAACC,OAAO,GAAGF,KAAK;EACrB,CAAC,CAAC;EAEF,OAAOC,GAAG,CAACC,OAAO;AACpB","ignoreList":[]}
@@ -0,0 +1,4 @@
import React from 'react';
export const GHContext = /*#__PURE__*/React.createContext(props => /*#__PURE__*/React.createElement(React.Fragment, null, props.children));
export const RNSScreensRefContext = /*#__PURE__*/React.createContext(null);
//# sourceMappingURL=contexts.js.map
@@ -0,0 +1 @@
{"version":3,"names":["React","GHContext","createContext","props","createElement","Fragment","children","RNSScreensRefContext"],"sourceRoot":"../../src","sources":["contexts.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAA6B,OAAO;AAGhD,OAAO,MAAMC,SAAS,gBAAGD,KAAK,CAACE,aAAa,CACzCC,KAA8C,iBAAKH,KAAA,CAAAI,aAAA,CAAAJ,KAAA,CAAAK,QAAA,QAAGF,KAAK,CAACG,QAAW,CAC1E,CAAC;AAED,OAAO,MAAMC,oBAAoB,gBAC/BP,KAAK,CAACE,aAAa,CAAmD,IAAI,CAAC","ignoreList":[]}
+28
View File
@@ -0,0 +1,28 @@
'use client';
import { Platform, UIManager } from 'react-native';
export const isNativePlatformSupported = Platform.OS === 'ios' || Platform.OS === 'android' || Platform.OS === 'windows';
let ENABLE_SCREENS = isNativePlatformSupported;
export function enableScreens(shouldEnableScreens = true) {
ENABLE_SCREENS = shouldEnableScreens;
if (!isNativePlatformSupported) {
return;
}
if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {
console.error(`Screen native module hasn't been linked. Please check the react-native-screens README for more details`);
}
}
let ENABLE_FREEZE = false;
export function enableFreeze(shouldEnableReactFreeze = true) {
if (!isNativePlatformSupported) {
return;
}
ENABLE_FREEZE = shouldEnableReactFreeze;
}
export function screensEnabled() {
return ENABLE_SCREENS;
}
export function freezeEnabled() {
return ENABLE_FREEZE;
}
//# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
{"version":3,"names":["Platform","UIManager","isNativePlatformSupported","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","screensEnabled","freezeEnabled"],"sourceRoot":"../../src","sources":["core.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,QAAQ,EAAEC,SAAS,QAAQ,cAAc;AAElD,OAAO,MAAMC,yBAAyB,GACpCF,QAAQ,CAACG,EAAE,KAAK,KAAK,IACrBH,QAAQ,CAACG,EAAE,KAAK,SAAS,IACzBH,QAAQ,CAACG,EAAE,KAAK,SAAS;AAE3B,IAAIC,cAAc,GAAGF,yBAAyB;AAE9C,OAAO,SAASG,aAAaA,CAACC,mBAAmB,GAAG,IAAI,EAAE;EACxDF,cAAc,GAAGE,mBAAmB;EAEpC,IAAI,CAACJ,yBAAyB,EAAE;IAC9B;EACF;EAEA,IAAIE,cAAc,IAAI,CAACH,SAAS,CAACM,oBAAoB,CAAC,WAAW,CAAC,EAAE;IAClEC,OAAO,CAACC,KAAK,CACX,wGACF,CAAC;EACH;AACF;AAEA,IAAIC,aAAa,GAAG,KAAK;AAEzB,OAAO,SAASC,YAAYA,CAACC,uBAAuB,GAAG,IAAI,EAAE;EAC3D,IAAI,CAACV,yBAAyB,EAAE;IAC9B;EACF;EAEAQ,aAAa,GAAGE,uBAAuB;AACzC;AAEA,OAAO,SAASC,cAAcA,CAAA,EAAG;EAC/B,OAAOT,cAAc;AACvB;AAEA,OAAO,SAASU,aAAaA,CAAA,EAAG;EAC9B,OAAOJ,aAAa;AACtB","ignoreList":[]}
@@ -0,0 +1,11 @@
'use client';
// eslint-disable-next-line @react-native/no-deep-imports
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
// Internal export, not part of stable library API.
export default codegenNativeComponent('RNSFullWindowOverlay', {
interfaceOnly: true
});
//# sourceMappingURL=FullWindowOverlayNativeComponent.js.map
@@ -0,0 +1 @@
{"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["fabric/FullWindowOverlayNativeComponent.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA,OAAOA,sBAAsB,MAAM,yDAAyD;;AAI5F;;AAKA,eAAeA,sBAAsB,CAAc,sBAAsB,EAAE;EACzEC,aAAa,EAAE;AACjB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
'use client';
// eslint-disable-next-line @react-native/no-deep-imports
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
// eslint-disable-next-line @typescript-eslint/ban-types
export default codegenNativeComponent('RNSModalScreen', {
interfaceOnly: true
});
//# sourceMappingURL=ModalScreenNativeComponent.js.map
@@ -0,0 +1 @@
{"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["fabric/ModalScreenNativeComponent.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA,OAAOA,sBAAsB,MAAM,yDAAyD;;AAU5F;;AAsGA,eAAeA,sBAAsB,CAAc,gBAAgB,EAAE;EACnEC,aAAa,EAAE;AACjB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,5 @@
'use client';
import { TurboModuleRegistry } from 'react-native';
export default TurboModuleRegistry.get('RNSModule');
//# sourceMappingURL=NativeScreensModule.js.map
@@ -0,0 +1 @@
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["fabric/NativeScreensModule.ts"],"mappings":"AAAA,YAAY;;AAGZ,SAASA,mBAAmB,QAAQ,cAAc;AAIlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,WAAW,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
export default {};
//# sourceMappingURL=NativeScreensModule.web.js.map
@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["fabric/NativeScreensModule.web.ts"],"mappings":"AAAA,eAAe,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
'use client';
// eslint-disable-next-line @react-native/no-deep-imports
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
export default codegenNativeComponent('RNSScreenContainer', {});
//# sourceMappingURL=ScreenContainerNativeComponent.js.map
@@ -0,0 +1 @@
{"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../../src","sources":["fabric/ScreenContainerNativeComponent.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA,OAAOA,sBAAsB,MAAM,yDAAyD;AAK5F,eAAeA,sBAAsB,CAAc,oBAAoB,EAAE,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
// eslint-disable-next-line @react-native/no-deep-imports
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
export default codegenNativeComponent('RNSScreenContentWrapper', {});
//# sourceMappingURL=ScreenContentWrapperNativeComponent.js.map
@@ -0,0 +1 @@
{"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../../src","sources":["fabric/ScreenContentWrapperNativeComponent.ts"],"mappings":"AAAA;AACA,OAAOA,sBAAsB,MAAM,yDAAyD;AAK5F,eAAeA,sBAAsB,CACnC,yBAAyB,EACzB,CAAC,CACH,CAAC","ignoreList":[]}

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