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,34 @@
import * as React from 'react';
import { useWindowDimensions, View } from 'react-native';
export function CompatNativeSafeAreaProvider({
children,
style,
onInsetsChange
}) {
const window = useWindowDimensions();
React.useEffect(() => {
const insets = {
top: 0,
bottom: 0,
left: 0,
right: 0
};
const frame = {
x: 0,
y: 0,
width: window.width,
height: window.height
};
// @ts-ignore: missing properties
onInsetsChange({
nativeEvent: {
insets,
frame
}
});
}, [onInsetsChange, window.height, window.width]);
return /*#__PURE__*/React.createElement(View, {
style: style
}, children);
}
//# sourceMappingURL=CompatNativeSafeAreaProvider.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","useWindowDimensions","View","CompatNativeSafeAreaProvider","children","style","onInsetsChange","window","useEffect","insets","top","bottom","left","right","frame","x","y","width","height","nativeEvent","createElement"],"sourceRoot":"../../src","sources":["CompatNativeSafeAreaProvider.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,mBAAmB,EAAEC,IAAI,QAAQ,cAAc;AAGxD,OAAO,SAASC,4BAA4BA,CAAC;EAC3CC,QAAQ;EACRC,KAAK;EACLC;AAC2B,CAAC,EAAE;EAC9B,MAAMC,MAAM,GAAGN,mBAAmB,CAAC,CAAC;EACpCD,KAAK,CAACQ,SAAS,CAAC,MAAM;IACpB,MAAMC,MAAM,GAAG;MACbC,GAAG,EAAE,CAAC;MACNC,MAAM,EAAE,CAAC;MACTC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE;IACT,CAAC;IACD,MAAMC,KAAK,GAAG;MACZC,CAAC,EAAE,CAAC;MACJC,CAAC,EAAE,CAAC;MACJC,KAAK,EAAEV,MAAM,CAACU,KAAK;MACnBC,MAAM,EAAEX,MAAM,CAACW;IACjB,CAAC;IACD;IACAZ,cAAc,CAAC;MAAEa,WAAW,EAAE;QAAEV,MAAM;QAAEK;MAAM;IAAE,CAAC,CAAC;EACpD,CAAC,EAAE,CAACR,cAAc,EAAEC,MAAM,CAACW,MAAM,EAAEX,MAAM,CAACU,KAAK,CAAC,CAAC;EACjD,oBAAOjB,KAAA,CAAAoB,aAAA,CAAClB,IAAI;IAACG,KAAK,EAAEA;EAAM,GAAED,QAAe,CAAC;AAC9C","ignoreList":[]}

View File

@@ -0,0 +1,7 @@
export const initialWindowMetrics = null;
/**
* @deprecated
*/
export const initialWindowSafeAreaInsets = null;
//# sourceMappingURL=InitialWindow.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["initialWindowMetrics","initialWindowSafeAreaInsets"],"sourceRoot":"../../src","sources":["InitialWindow.ts"],"mappings":"AAEA,OAAO,MAAMA,oBAAoC,GAAG,IAAI;;AAExD;AACA;AACA;AACA,OAAO,MAAMC,2BAA8C,GAAG,IAAI","ignoreList":[]}

View File

@@ -0,0 +1,8 @@
import NativeSafeAreaContext from './specs/NativeSafeAreaContext';
export const initialWindowMetrics = NativeSafeAreaContext?.getConstants?.()?.initialWindowMetrics ?? null;
/**
* @deprecated
*/
export const initialWindowSafeAreaInsets = initialWindowMetrics?.insets;
//# sourceMappingURL=InitialWindow.native.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["NativeSafeAreaContext","initialWindowMetrics","getConstants","initialWindowSafeAreaInsets","insets"],"sourceRoot":"../../src","sources":["InitialWindow.native.ts"],"mappings":"AACA,OAAOA,qBAAqB,MAAM,+BAA+B;AAEjE,OAAO,MAAMC,oBAAoB,GAAID,qBAAqB,EAAEE,YAAY,GAAG,CAAC,EACxED,oBAAoB,IAAI,IAAuB;;AAEnD;AACA;AACA;AACA,OAAO,MAAME,2BAA2B,GAAGF,oBAAoB,EAAEG,MAAM","ignoreList":[]}

View File

@@ -0,0 +1,3 @@
import NativeSafeAreaProvider from './specs/NativeSafeAreaProvider';
export { NativeSafeAreaProvider };
//# sourceMappingURL=NativeSafeAreaProvider.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["NativeSafeAreaProvider"],"sourceRoot":"../../src","sources":["NativeSafeAreaProvider.tsx"],"mappings":"AAAA,OAAOA,sBAAsB,MAAM,gCAAgC;AAEnE,SAASA,sBAAsB","ignoreList":[]}

View File

@@ -0,0 +1,126 @@
/* eslint-env browser */
import * as React from 'react';
import { View } from 'react-native';
/**
* TODO:
* Currently insets and frame are based on the window and are not
* relative to the provider view. This is inconsistent with iOS and Android.
* However in most cases if the provider view covers the screen this is not
* an issue.
*/
const CSSTransitions = {
WebkitTransition: 'webkitTransitionEnd',
Transition: 'transitionEnd',
MozTransition: 'transitionend',
MSTransition: 'msTransitionEnd',
OTransition: 'oTransitionEnd'
};
export function NativeSafeAreaProvider({
children,
style,
onInsetsChange
}) {
React.useEffect(() => {
// Skip for SSR.
if (typeof document === 'undefined') {
return;
}
const element = createContextElement();
document.body.appendChild(element);
const onEnd = () => {
const {
paddingTop,
paddingBottom,
paddingLeft,
paddingRight
} = window.getComputedStyle(element);
const insets = {
top: paddingTop ? parseInt(paddingTop, 10) : 0,
bottom: paddingBottom ? parseInt(paddingBottom, 10) : 0,
left: paddingLeft ? parseInt(paddingLeft, 10) : 0,
right: paddingRight ? parseInt(paddingRight, 10) : 0
};
const frame = {
x: 0,
y: 0,
width: document.documentElement.offsetWidth,
height: document.documentElement.offsetHeight
};
// @ts-ignore: missing properties
onInsetsChange({
nativeEvent: {
insets,
frame
}
});
};
element.addEventListener(getSupportedTransitionEvent(), onEnd);
onEnd();
return () => {
document.body.removeChild(element);
element.removeEventListener(getSupportedTransitionEvent(), onEnd);
};
}, [onInsetsChange]);
return /*#__PURE__*/React.createElement(View, {
style: style
}, children);
}
let _supportedTransitionEvent = null;
function getSupportedTransitionEvent() {
if (_supportedTransitionEvent != null) {
return _supportedTransitionEvent;
}
const element = document.createElement('invalidtype');
_supportedTransitionEvent = CSSTransitions.Transition;
for (const key in CSSTransitions) {
if (element.style[key] !== undefined) {
_supportedTransitionEvent = CSSTransitions[key];
break;
}
}
return _supportedTransitionEvent;
}
let _supportedEnv = null;
function getSupportedEnv() {
if (_supportedEnv !== null) {
return _supportedEnv;
}
const {
CSS
} = window;
if (CSS && CSS.supports && CSS.supports('top: constant(safe-area-inset-top)')) {
_supportedEnv = 'constant';
} else {
_supportedEnv = 'env';
}
return _supportedEnv;
}
function getInset(side) {
return `${getSupportedEnv()}(safe-area-inset-${side})`;
}
function createContextElement() {
const element = document.createElement('div');
const {
style
} = element;
style.position = 'fixed';
style.left = '0';
style.top = '0';
style.width = '0';
style.height = '0';
style.zIndex = '-1';
style.overflow = 'hidden';
style.visibility = 'hidden';
// Bacon: Anything faster than this and the callback will be invoked too early with the wrong insets
style.transitionDuration = '0.05s';
style.transitionProperty = 'padding';
style.transitionDelay = '0s';
style.paddingTop = getInset('top');
style.paddingBottom = getInset('bottom');
style.paddingLeft = getInset('left');
style.paddingRight = getInset('right');
return element;
}
//# sourceMappingURL=NativeSafeAreaProvider.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","View","CSSTransitions","WebkitTransition","Transition","MozTransition","MSTransition","OTransition","NativeSafeAreaProvider","children","style","onInsetsChange","useEffect","document","element","createContextElement","body","appendChild","onEnd","paddingTop","paddingBottom","paddingLeft","paddingRight","window","getComputedStyle","insets","top","parseInt","bottom","left","right","frame","x","y","width","documentElement","offsetWidth","height","offsetHeight","nativeEvent","addEventListener","getSupportedTransitionEvent","removeChild","removeEventListener","createElement","_supportedTransitionEvent","key","undefined","_supportedEnv","getSupportedEnv","CSS","supports","getInset","side","position","zIndex","overflow","visibility","transitionDuration","transitionProperty","transitionDelay"],"sourceRoot":"../../src","sources":["NativeSafeAreaProvider.web.tsx"],"mappings":"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","ignoreList":[]}

View File

@@ -0,0 +1,2 @@
export { CompatNativeSafeAreaProvider as NativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
//# sourceMappingURL=NativeSafeAreaProvider.windows.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["CompatNativeSafeAreaProvider","NativeSafeAreaProvider"],"sourceRoot":"../../src","sources":["NativeSafeAreaProvider.windows.tsx"],"mappings":"AAAA,SAASA,4BAA4B,IAAIC,sBAAsB,QAAQ,gCAAgC","ignoreList":[]}

View File

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

View File

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

View File

@@ -0,0 +1,132 @@
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 { Dimensions, StyleSheet } from 'react-native';
import { NativeSafeAreaProvider } from './NativeSafeAreaProvider';
const isDev = process.env.NODE_ENV !== 'production';
export const SafeAreaInsetsContext = /*#__PURE__*/React.createContext(null);
if (isDev) {
SafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';
}
export const SafeAreaFrameContext = /*#__PURE__*/React.createContext(null);
if (isDev) {
SafeAreaFrameContext.displayName = 'SafeAreaFrameContext';
}
export function SafeAreaProvider({
children,
initialMetrics,
initialSafeAreaInsets,
style,
...others
}) {
const parentInsets = useParentSafeAreaInsets();
const parentFrame = useParentSafeAreaFrame();
const [insets, setInsets] = React.useState(initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? null);
const [frame, setFrame] = React.useState(initialMetrics?.frame ?? parentFrame ?? {
// Backwards compat so we render anyway if we don't have frame.
x: 0,
y: 0,
width: Dimensions.get('window').width,
height: Dimensions.get('window').height
});
const onInsetsChange = React.useCallback(event => {
const {
nativeEvent: {
frame: nextFrame,
insets: nextInsets
}
} = event;
setFrame(curFrame => {
if (
// Backwards compat with old native code that won't send frame.
nextFrame && (nextFrame.height !== curFrame.height || nextFrame.width !== curFrame.width || nextFrame.x !== curFrame.x || nextFrame.y !== curFrame.y)) {
return nextFrame;
} else {
return curFrame;
}
});
setInsets(curInsets => {
if (!curInsets || nextInsets.bottom !== curInsets.bottom || nextInsets.left !== curInsets.left || nextInsets.right !== curInsets.right || nextInsets.top !== curInsets.top) {
return nextInsets;
} else {
return curInsets;
}
});
}, []);
return /*#__PURE__*/React.createElement(NativeSafeAreaProvider, _extends({
style: [styles.fill, style],
onInsetsChange: onInsetsChange
}, others), insets != null ? /*#__PURE__*/React.createElement(SafeAreaFrameContext.Provider, {
value: frame
}, /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Provider, {
value: insets
}, children)) : null);
}
export function SafeAreaListener({
onChange,
style,
children,
...others
}) {
return /*#__PURE__*/React.createElement(NativeSafeAreaProvider, _extends({}, others, {
style: [styles.fill, style],
onInsetsChange: e => {
onChange({
insets: e.nativeEvent.insets,
frame: e.nativeEvent.frame
});
}
}), children);
}
const styles = StyleSheet.create({
fill: {
flex: 1
}
});
function useParentSafeAreaInsets() {
return React.useContext(SafeAreaInsetsContext);
}
function useParentSafeAreaFrame() {
return React.useContext(SafeAreaFrameContext);
}
const NO_INSETS_ERROR = 'No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.';
export function useSafeAreaInsets() {
const insets = React.useContext(SafeAreaInsetsContext);
if (insets == null) {
throw new Error(NO_INSETS_ERROR);
}
return insets;
}
export function useSafeAreaFrame() {
const frame = React.useContext(SafeAreaFrameContext);
if (frame == null) {
throw new Error(NO_INSETS_ERROR);
}
return frame;
}
export function withSafeAreaInsets(WrappedComponent) {
return /*#__PURE__*/React.forwardRef((props, ref) => {
const insets = useSafeAreaInsets();
return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, props, {
insets: insets,
ref: ref
}));
});
}
/**
* @deprecated
*/
export function useSafeArea() {
return useSafeAreaInsets();
}
/**
* @deprecated
*/
export const SafeAreaConsumer = SafeAreaInsetsContext.Consumer;
/**
* @deprecated
*/
export const SafeAreaContext = SafeAreaInsetsContext;
//# sourceMappingURL=SafeAreaContext.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","Dimensions","StyleSheet","NativeSafeAreaProvider","isDev","process","env","NODE_ENV","SafeAreaInsetsContext","createContext","displayName","SafeAreaFrameContext","SafeAreaProvider","children","initialMetrics","initialSafeAreaInsets","style","others","parentInsets","useParentSafeAreaInsets","parentFrame","useParentSafeAreaFrame","insets","setInsets","useState","frame","setFrame","x","y","width","get","height","onInsetsChange","useCallback","event","nativeEvent","nextFrame","nextInsets","curFrame","curInsets","bottom","left","right","top","createElement","_extends","styles","fill","Provider","value","SafeAreaListener","onChange","e","create","flex","useContext","NO_INSETS_ERROR","useSafeAreaInsets","Error","useSafeAreaFrame","withSafeAreaInsets","WrappedComponent","forwardRef","props","ref","useSafeArea","SafeAreaConsumer","Consumer","SafeAreaContext"],"sourceRoot":"../../src","sources":["SafeAreaContext.tsx"],"mappings":"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","ignoreList":[]}

View File

@@ -0,0 +1,40 @@
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 NativeSafeAreaView from './specs/NativeSafeAreaView';
import { useMemo } from 'react';
const defaultEdges = {
top: 'additive',
left: 'additive',
bottom: 'additive',
right: 'additive'
};
export const SafeAreaView = /*#__PURE__*/React.forwardRef(({
edges,
...props
}, ref) => {
const nativeEdges = useMemo(() => {
if (edges == null) {
return defaultEdges;
}
const edgesObj = Array.isArray(edges) ? edges.reduce((acc, edge) => {
acc[edge] = 'additive';
return acc;
}, {}) :
// ts has trouble with refining readonly arrays.
edges;
// make sure that we always pass all edges, required for fabric
const requiredEdges = {
top: edgesObj.top ?? 'off',
right: edgesObj.right ?? 'off',
bottom: edgesObj.bottom ?? 'off',
left: edgesObj.left ?? 'off'
};
return requiredEdges;
}, [edges]);
return /*#__PURE__*/React.createElement(NativeSafeAreaView, _extends({}, props, {
edges: nativeEdges,
ref: ref
}));
});
//# sourceMappingURL=SafeAreaView.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","NativeSafeAreaView","useMemo","defaultEdges","top","left","bottom","right","SafeAreaView","forwardRef","edges","props","ref","nativeEdges","edgesObj","Array","isArray","reduce","acc","edge","requiredEdges","createElement","_extends"],"sourceRoot":"../../src","sources":["SafeAreaView.tsx"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAQ9B,OAAOC,kBAAkB,MAAM,4BAA4B;AAC3D,SAASC,OAAO,QAAQ,OAAO;AAE/B,MAAMC,YAAoC,GAAG;EAC3CC,GAAG,EAAE,UAAU;EACfC,IAAI,EAAE,UAAU;EAChBC,MAAM,EAAE,UAAU;EAClBC,KAAK,EAAE;AACT,CAAC;AAID,OAAO,MAAMC,YAAY,gBAAGR,KAAK,CAACS,UAAU,CAG1C,CAAC;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC9B,MAAMC,WAAW,GAAGX,OAAO,CAAC,MAAM;IAChC,IAAIQ,KAAK,IAAI,IAAI,EAAE;MACjB,OAAOP,YAAY;IACrB;IAEA,MAAMW,QAAQ,GAAGC,KAAK,CAACC,OAAO,CAACN,KAAK,CAAC,GACjCA,KAAK,CAACO,MAAM,CAAa,CAACC,GAAG,EAAEC,IAAU,KAAK;MAC5CD,GAAG,CAACC,IAAI,CAAC,GAAG,UAAU;MACtB,OAAOD,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;IACN;IACCR,KAAoB;;IAEzB;IACA,MAAMU,aAAqC,GAAG;MAC5ChB,GAAG,EAAEU,QAAQ,CAACV,GAAG,IAAI,KAAK;MAC1BG,KAAK,EAAEO,QAAQ,CAACP,KAAK,IAAI,KAAK;MAC9BD,MAAM,EAAEQ,QAAQ,CAACR,MAAM,IAAI,KAAK;MAChCD,IAAI,EAAES,QAAQ,CAACT,IAAI,IAAI;IACzB,CAAC;IAED,OAAOe,aAAa;EACtB,CAAC,EAAE,CAACV,KAAK,CAAC,CAAC;EAEX,oBAAOV,KAAA,CAAAqB,aAAA,CAACpB,kBAAkB,EAAAqB,QAAA,KAAKX,KAAK;IAAED,KAAK,EAAEG,WAAY;IAACD,GAAG,EAAEA;EAAI,EAAE,CAAC;AACxE,CAAC,CAAC","ignoreList":[]}

View File

@@ -0,0 +1,84 @@
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 { StyleSheet, View } from 'react-native';
import { useSafeAreaInsets } from './SafeAreaContext';
const defaultEdges = {
top: 'additive',
left: 'additive',
bottom: 'additive',
right: 'additive'
};
function getEdgeValue(inset, current, mode) {
switch (mode) {
case 'off':
return current;
case 'maximum':
return Math.max(current, inset);
case 'additive':
default:
return current + inset;
}
}
export const SafeAreaView = /*#__PURE__*/React.forwardRef(({
style = {},
mode,
edges,
...rest
}, ref) => {
const insets = useSafeAreaInsets();
const edgesRecord = React.useMemo(() => {
if (edges == null) {
return defaultEdges;
}
return Array.isArray(edges) ? edges.reduce((acc, edge) => {
acc[edge] = 'additive';
return acc;
}, {}) :
// ts has trouble with refining readonly arrays.
edges;
}, [edges]);
const appliedStyle = React.useMemo(() => {
const flatStyle = StyleSheet.flatten(style);
if (mode === 'margin') {
const {
margin = 0,
marginVertical = margin,
marginHorizontal = margin,
marginTop = marginVertical,
marginRight = marginHorizontal,
marginBottom = marginVertical,
marginLeft = marginHorizontal
} = flatStyle;
const marginStyle = {
marginTop: getEdgeValue(insets.top, marginTop, edgesRecord.top),
marginRight: getEdgeValue(insets.right, marginRight, edgesRecord.right),
marginBottom: getEdgeValue(insets.bottom, marginBottom, edgesRecord.bottom),
marginLeft: getEdgeValue(insets.left, marginLeft, edgesRecord.left)
};
return [style, marginStyle];
} else {
const {
padding = 0,
paddingVertical = padding,
paddingHorizontal = padding,
paddingTop = paddingVertical,
paddingRight = paddingHorizontal,
paddingBottom = paddingVertical,
paddingLeft = paddingHorizontal
} = flatStyle;
const paddingStyle = {
paddingTop: getEdgeValue(insets.top, paddingTop, edgesRecord.top),
paddingRight: getEdgeValue(insets.right, paddingRight, edgesRecord.right),
paddingBottom: getEdgeValue(insets.bottom, paddingBottom, edgesRecord.bottom),
paddingLeft: getEdgeValue(insets.left, paddingLeft, edgesRecord.left)
};
return [style, paddingStyle];
}
}, [edgesRecord.bottom, edgesRecord.left, edgesRecord.right, edgesRecord.top, insets.bottom, insets.left, insets.right, insets.top, mode, style]);
return /*#__PURE__*/React.createElement(View, _extends({
style: appliedStyle
}, rest, {
ref: ref
}));
});
//# sourceMappingURL=SafeAreaView.web.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["React","StyleSheet","View","useSafeAreaInsets","defaultEdges","top","left","bottom","right","getEdgeValue","inset","current","mode","Math","max","SafeAreaView","forwardRef","style","edges","rest","ref","insets","edgesRecord","useMemo","Array","isArray","reduce","acc","edge","appliedStyle","flatStyle","flatten","margin","marginVertical","marginHorizontal","marginTop","marginRight","marginBottom","marginLeft","marginStyle","padding","paddingVertical","paddingHorizontal","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingStyle","createElement","_extends"],"sourceRoot":"../../src","sources":["SafeAreaView.web.tsx"],"mappings":"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","ignoreList":[]}

View File

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

View File

@@ -0,0 +1 @@
{"version":3,"names":["View","SafeAreaView"],"sourceRoot":"../../src","sources":["SafeAreaView.windows.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAGnC,OAAO,MAAMC,YAAY,GAAGD,IAA6C","ignoreList":[]}

View File

@@ -0,0 +1,7 @@
'use client';
export * from './SafeAreaContext';
export * from './SafeAreaView';
export * from './InitialWindow';
export * from './SafeArea.types';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,YAAY;;AAEZ,cAAc,mBAAmB;AACjC,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,kBAAkB","ignoreList":[]}

View File

@@ -0,0 +1,3 @@
import { TurboModuleRegistry } from 'react-native';
export default TurboModuleRegistry.get('RNCSafeAreaContext');
//# sourceMappingURL=NativeSafeAreaContext.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeSafeAreaContext.ts"],"mappings":"AAAA,SAAsBA,mBAAmB,QAAQ,cAAc;AAsB/D,eAAeA,mBAAmB,CAACC,GAAG,CAAO,oBAAoB,CAAC","ignoreList":[]}

View File

@@ -0,0 +1,3 @@
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
export default codegenNativeComponent('RNCSafeAreaProvider');
//# sourceMappingURL=NativeSafeAreaProvider.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/NativeSafeAreaProvider.ts"],"mappings":"AAIA,OAAOA,sBAAsB,MAAM,yDAAyD;AAsB5F,eAAeA,sBAAsB,CACnC,qBACF,CAAC","ignoreList":[]}

View File

@@ -0,0 +1,5 @@
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
export default codegenNativeComponent('RNCSafeAreaView', {
interfaceOnly: true
});
//# sourceMappingURL=NativeSafeAreaView.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["codegenNativeComponent","interfaceOnly"],"sourceRoot":"../../../src","sources":["specs/NativeSafeAreaView.ts"],"mappings":"AAAA,OAAOA,sBAAsB,MAAM,yDAAyD;AAc5F,eAAeA,sBAAsB,CAAc,iBAAiB,EAAE;EACpEC,aAAa,EAAE;AACjB,CAAC,CAAC","ignoreList":[]}