@vxrn/safe-area 1.27.1 → 2.0.0-beta.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/cjs/InitialWindow.cjs +15 -17
  3. package/dist/cjs/InitialWindow.native.cjs +30 -0
  4. package/dist/cjs/InitialWindow.native.js +15 -16
  5. package/dist/cjs/InitialWindow.native.js.map +1 -1
  6. package/dist/cjs/NativeSafeAreaProvider.cjs +109 -135
  7. package/dist/cjs/NativeSafeAreaProvider.native.cjs +141 -0
  8. package/dist/cjs/NativeSafeAreaProvider.native.js +111 -141
  9. package/dist/cjs/NativeSafeAreaProvider.native.js.map +1 -1
  10. package/dist/cjs/SafeArea-types.cjs +9 -11
  11. package/dist/cjs/SafeArea-types.native.cjs +18 -0
  12. package/dist/cjs/SafeArea-types.native.js +9 -10
  13. package/dist/cjs/SafeArea-types.native.js.map +1 -1
  14. package/dist/cjs/SafeAreaContext.cjs +85 -106
  15. package/dist/cjs/SafeAreaContext.native.cjs +132 -0
  16. package/dist/cjs/SafeAreaContext.native.js +88 -108
  17. package/dist/cjs/SafeAreaContext.native.js.map +1 -1
  18. package/dist/cjs/SafeAreaView.cjs +67 -100
  19. package/dist/cjs/SafeAreaView.native.cjs +99 -0
  20. package/dist/cjs/SafeAreaView.native.js +74 -106
  21. package/dist/cjs/SafeAreaView.native.js.map +1 -1
  22. package/dist/cjs/getWindowFrame.cjs +20 -24
  23. package/dist/cjs/getWindowFrame.native.cjs +35 -0
  24. package/dist/cjs/getWindowFrame.native.js +21 -27
  25. package/dist/cjs/getWindowFrame.native.js.map +1 -1
  26. package/dist/cjs/index.cjs +9 -11
  27. package/dist/cjs/index.native.cjs +22 -0
  28. package/dist/cjs/index.native.js +9 -10
  29. package/dist/cjs/index.native.js.map +1 -1
  30. package/dist/esm/InitialWindow.mjs +1 -0
  31. package/dist/esm/InitialWindow.mjs.map +1 -1
  32. package/dist/esm/InitialWindow.native.js +1 -0
  33. package/dist/esm/InitialWindow.native.js.map +1 -1
  34. package/dist/esm/NativeSafeAreaProvider.mjs +94 -109
  35. package/dist/esm/NativeSafeAreaProvider.mjs.map +1 -1
  36. package/dist/esm/NativeSafeAreaProvider.native.js +96 -116
  37. package/dist/esm/NativeSafeAreaProvider.native.js.map +1 -1
  38. package/dist/esm/SafeArea-types.mjs +0 -2
  39. package/dist/esm/SafeArea-types.native.js +0 -2
  40. package/dist/esm/SafeAreaContext.mjs +62 -74
  41. package/dist/esm/SafeAreaContext.mjs.map +1 -1
  42. package/dist/esm/SafeAreaContext.native.js +66 -78
  43. package/dist/esm/SafeAreaContext.native.js.map +1 -1
  44. package/dist/esm/SafeAreaView.mjs +52 -74
  45. package/dist/esm/SafeAreaView.mjs.map +1 -1
  46. package/dist/esm/SafeAreaView.native.js +60 -82
  47. package/dist/esm/SafeAreaView.native.js.map +1 -1
  48. package/dist/esm/getWindowFrame.mjs +7 -6
  49. package/dist/esm/getWindowFrame.mjs.map +1 -1
  50. package/dist/esm/getWindowFrame.native.js +9 -10
  51. package/dist/esm/getWindowFrame.native.js.map +1 -1
  52. package/dist/esm/index.js +5 -4
  53. package/dist/esm/index.mjs +5 -4
  54. package/dist/esm/index.native.js +5 -4
  55. package/package.json +2 -2
  56. package/dist/esm/SafeArea-types.mjs.map +0 -1
  57. package/dist/esm/SafeArea-types.native.js.map +0 -1
  58. package/dist/esm/index.js.map +0 -1
  59. package/dist/esm/index.mjs.map +0 -1
  60. package/dist/esm/index.native.js.map +0 -1
@@ -1,134 +1,114 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- function _type_of(obj) {
4
- "@swc/helpers - typeof";
5
3
 
6
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
7
- }
8
4
  var CSSTransitions = {
9
- WebkitTransition: "webkitTransitionEnd",
10
- Transition: "transitionEnd",
11
- MozTransition: "transitionend",
12
- MSTransition: "msTransitionEnd",
13
- OTransition: "oTransitionEnd"
5
+ WebkitTransition: "webkitTransitionEnd",
6
+ Transition: "transitionEnd",
7
+ MozTransition: "transitionend",
8
+ MSTransition: "msTransitionEnd",
9
+ OTransition: "oTransitionEnd"
14
10
  };
15
11
  function NativeSafeAreaProvider(param) {
16
- var {
17
- children,
18
- style,
19
- onInsetsChange
20
- } = param;
21
- React.useEffect(function () {
22
- if (typeof document === "undefined") {
23
- return;
24
- }
25
- var element = createContextElement();
26
- document.body.appendChild(element);
27
- var onEnd = function () {
28
- var {
29
- paddingTop,
30
- paddingBottom,
31
- paddingLeft,
32
- paddingRight
33
- } = window.getComputedStyle(element);
34
- var insets = {
35
- top: paddingTop ? Number.parseInt(paddingTop, 10) : 0,
36
- bottom: paddingBottom ? Number.parseInt(paddingBottom, 10) : 0,
37
- left: paddingLeft ? Number.parseInt(paddingLeft, 10) : 0,
38
- right: paddingRight ? Number.parseInt(paddingRight, 10) : 0
39
- };
40
- var frame = {
41
- x: 0,
42
- y: 0,
43
- width: document.documentElement.offsetWidth,
44
- height: document.documentElement.offsetHeight
45
- };
46
- onInsetsChange({
47
- nativeEvent: {
48
- insets,
49
- frame
50
- }
51
- });
52
- };
53
- element.addEventListener(getSupportedTransitionEvent(), onEnd);
54
- onEnd();
55
- return function () {
56
- document.body.removeChild(element);
57
- element.removeEventListener(getSupportedTransitionEvent(), onEnd);
58
- };
59
- }, [onInsetsChange]);
60
- if (style) {
61
- var styleValue = style;
62
- var styleValues = Array.isArray(styleValue) ? styleValue.flat(Number.POSITIVE_INFINITY) : [styleValue];
63
- var flattenedStyle = styleValues.reduce(function (result, value) {
64
- return value && (typeof value === "undefined" ? "undefined" : _type_of(value)) === "object" ? Object.assign(result, value) : result;
65
- }, {});
66
- return /* @__PURE__ */_jsx("div", {
67
- style: flattenedStyle,
68
- children
69
- });
70
- }
71
- return /* @__PURE__ */_jsx("div", {
72
- style: {
73
- display: "contents"
74
- },
75
- children
76
- });
12
+ var { children, style, onInsetsChange } = param;
13
+ React.useEffect(function() {
14
+ if (typeof document === "undefined") {
15
+ return;
16
+ }
17
+ var element = createContextElement();
18
+ document.body.appendChild(element);
19
+ var onEnd = function() {
20
+ var { paddingTop, paddingBottom, paddingLeft, paddingRight } = window.getComputedStyle(element);
21
+ var insets = {
22
+ top: paddingTop ? Number.parseInt(paddingTop, 10) : 0,
23
+ bottom: paddingBottom ? Number.parseInt(paddingBottom, 10) : 0,
24
+ left: paddingLeft ? Number.parseInt(paddingLeft, 10) : 0,
25
+ right: paddingRight ? Number.parseInt(paddingRight, 10) : 0
26
+ };
27
+ var frame = {
28
+ x: 0,
29
+ y: 0,
30
+ width: document.documentElement.offsetWidth,
31
+ height: document.documentElement.offsetHeight
32
+ };
33
+ onInsetsChange({ nativeEvent: {
34
+ insets,
35
+ frame
36
+ } });
37
+ };
38
+ element.addEventListener(getSupportedTransitionEvent(), onEnd);
39
+ onEnd();
40
+ return function() {
41
+ document.body.removeChild(element);
42
+ element.removeEventListener(getSupportedTransitionEvent(), onEnd);
43
+ };
44
+ }, [onInsetsChange]);
45
+ if (style) {
46
+ var styleValue = style;
47
+ var styleValues = Array.isArray(styleValue) ? styleValue.flat(Number.POSITIVE_INFINITY) : [styleValue];
48
+ var flattenedStyle = styleValues.reduce(function(result, value) {
49
+ return value && typeof value === "object" ? Object.assign(result, value) : result;
50
+ }, {});
51
+ return /* @__PURE__ */ jsx("div", {
52
+ style: flattenedStyle,
53
+ children
54
+ });
55
+ }
56
+ return /* @__PURE__ */ jsx("div", {
57
+ style: { display: "contents" },
58
+ children
59
+ });
77
60
  }
78
61
  var _supportedTransitionEvent = null;
79
62
  function getSupportedTransitionEvent() {
80
- if (_supportedTransitionEvent != null) {
81
- return _supportedTransitionEvent;
82
- }
83
- var element = document.createElement("invalidtype");
84
- _supportedTransitionEvent = CSSTransitions.Transition;
85
- for (var key in CSSTransitions) {
86
- if (element.style[key] !== void 0) {
87
- _supportedTransitionEvent = CSSTransitions[key];
88
- break;
89
- }
90
- }
91
- return _supportedTransitionEvent;
63
+ if (_supportedTransitionEvent != null) {
64
+ return _supportedTransitionEvent;
65
+ }
66
+ var element = document.createElement("invalidtype");
67
+ _supportedTransitionEvent = CSSTransitions.Transition;
68
+ for (var key in CSSTransitions) {
69
+ if (element.style[key] !== void 0) {
70
+ _supportedTransitionEvent = CSSTransitions[key];
71
+ break;
72
+ }
73
+ }
74
+ return _supportedTransitionEvent;
92
75
  }
93
76
  var _supportedEnv = null;
94
77
  function getSupportedEnv() {
95
- if (_supportedEnv !== null) {
96
- return _supportedEnv;
97
- }
98
- var {
99
- CSS
100
- } = window;
101
- if (CSS && CSS.supports && CSS.supports("top: constant(safe-area-inset-top)")) {
102
- _supportedEnv = "constant";
103
- } else {
104
- _supportedEnv = "env";
105
- }
106
- return _supportedEnv;
78
+ if (_supportedEnv !== null) {
79
+ return _supportedEnv;
80
+ }
81
+ var { CSS } = window;
82
+ if (CSS && CSS.supports && CSS.supports("top: constant(safe-area-inset-top)")) {
83
+ _supportedEnv = "constant";
84
+ } else {
85
+ _supportedEnv = "env";
86
+ }
87
+ return _supportedEnv;
107
88
  }
108
89
  function getInset(side) {
109
- return `${getSupportedEnv()}(safe-area-inset-${side})`;
90
+ return `${getSupportedEnv()}(safe-area-inset-${side})`;
110
91
  }
111
92
  function createContextElement() {
112
- var element = document.createElement("div");
113
- var {
114
- style
115
- } = element;
116
- style.position = "fixed";
117
- style.left = "0";
118
- style.top = "0";
119
- style.width = "0";
120
- style.height = "0";
121
- style.zIndex = "-1";
122
- style.overflow = "hidden";
123
- style.visibility = "hidden";
124
- style.transitionDuration = "0.05s";
125
- style.transitionProperty = "padding";
126
- style.transitionDelay = "0s";
127
- style.paddingTop = getInset("top");
128
- style.paddingBottom = getInset("bottom");
129
- style.paddingLeft = getInset("left");
130
- style.paddingRight = getInset("right");
131
- return element;
93
+ var element = document.createElement("div");
94
+ var { style } = element;
95
+ style.position = "fixed";
96
+ style.left = "0";
97
+ style.top = "0";
98
+ style.width = "0";
99
+ style.height = "0";
100
+ style.zIndex = "-1";
101
+ style.overflow = "hidden";
102
+ style.visibility = "hidden";
103
+ style.transitionDuration = "0.05s";
104
+ style.transitionProperty = "padding";
105
+ style.transitionDelay = "0s";
106
+ style.paddingTop = getInset("top");
107
+ style.paddingBottom = getInset("bottom");
108
+ style.paddingLeft = getInset("left");
109
+ style.paddingRight = getInset("right");
110
+ return element;
132
111
  }
112
+
133
113
  export { NativeSafeAreaProvider };
134
114
  //# sourceMappingURL=NativeSafeAreaProvider.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","React","_type_of","obj","Symbol","constructor","CSSTransitions","WebkitTransition","Transition","MozTransition","MSTransition","OTransition","NativeSafeAreaProvider","param","children","style","onInsetsChange","useEffect","document","element","createContextElement","body","appendChild","onEnd","paddingTop","paddingBottom","paddingLeft","paddingRight","window","getComputedStyle","insets","top","Number","parseInt","bottom","left","right","frame","x","y","width","documentElement","offsetWidth","height","offsetHeight","nativeEvent","addEventListener","getSupportedTransitionEvent","removeChild","removeEventListener","styleValue","styleValues","Array","isArray","flat","POSITIVE_INFINITY","flattenedStyle","reduce","result","value","Object","assign","display","_supportedTransitionEvent","createElement","key","_supportedEnv","getSupportedEnv","CSS","supports","getInset","side"],"sources":["../../src/NativeSafeAreaProvider.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"NativeSafeAreaProvider.native.js","names":[],"sources":["esm/NativeSafeAreaProvider.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nvar CSSTransitions = {\n WebkitTransition: \"webkitTransitionEnd\",\n Transition: \"transitionEnd\",\n MozTransition: \"transitionend\",\n MSTransition: \"msTransitionEnd\",\n OTransition: \"oTransitionEnd\"\n};\nfunction NativeSafeAreaProvider(param) {\n var { children, style, onInsetsChange } = param;\n React.useEffect(function() {\n if (typeof document === \"undefined\") {\n return;\n }\n var element = createContextElement();\n document.body.appendChild(element);\n var onEnd = function() {\n var { paddingTop, paddingBottom, paddingLeft, paddingRight } = window.getComputedStyle(element);\n var insets = {\n top: paddingTop ? Number.parseInt(paddingTop, 10) : 0,\n bottom: paddingBottom ? Number.parseInt(paddingBottom, 10) : 0,\n left: paddingLeft ? Number.parseInt(paddingLeft, 10) : 0,\n right: paddingRight ? Number.parseInt(paddingRight, 10) : 0\n };\n var frame = {\n x: 0,\n y: 0,\n width: document.documentElement.offsetWidth,\n height: document.documentElement.offsetHeight\n };\n onInsetsChange({\n nativeEvent: {\n insets,\n frame\n }\n });\n };\n element.addEventListener(getSupportedTransitionEvent(), onEnd);\n onEnd();\n return function() {\n document.body.removeChild(element);\n element.removeEventListener(getSupportedTransitionEvent(), onEnd);\n };\n }, [\n onInsetsChange\n ]);\n if (style) {\n var styleValue = style;\n var styleValues = Array.isArray(styleValue) ? styleValue.flat(Number.POSITIVE_INFINITY) : [\n styleValue\n ];\n var flattenedStyle = styleValues.reduce(function(result, value) {\n return value && typeof value === \"object\" ? Object.assign(result, value) : result;\n }, {});\n return /* @__PURE__ */ _jsx(\"div\", {\n style: flattenedStyle,\n children\n });\n }\n return /* @__PURE__ */ _jsx(\"div\", {\n style: {\n display: \"contents\"\n },\n children\n });\n}\nvar _supportedTransitionEvent = null;\nfunction getSupportedTransitionEvent() {\n if (_supportedTransitionEvent != null) {\n return _supportedTransitionEvent;\n }\n var element = document.createElement(\"invalidtype\");\n _supportedTransitionEvent = CSSTransitions.Transition;\n for (var key in CSSTransitions) {\n if (element.style[key] !== void 0) {\n _supportedTransitionEvent = CSSTransitions[key];\n break;\n }\n }\n return _supportedTransitionEvent;\n}\nvar _supportedEnv = null;\nfunction getSupportedEnv() {\n if (_supportedEnv !== null) {\n return _supportedEnv;\n }\n var { CSS } = window;\n if (CSS && CSS.supports && CSS.supports(\"top: constant(safe-area-inset-top)\")) {\n _supportedEnv = \"constant\";\n } else {\n _supportedEnv = \"env\";\n }\n return _supportedEnv;\n}\nfunction getInset(side) {\n return `${getSupportedEnv()}(safe-area-inset-${side})`;\n}\nfunction createContextElement() {\n var element = document.createElement(\"div\");\n var { style } = element;\n style.position = \"fixed\";\n style.left = \"0\";\n style.top = \"0\";\n style.width = \"0\";\n style.height = \"0\";\n style.zIndex = \"-1\";\n style.overflow = \"hidden\";\n style.visibility = \"hidden\";\n style.transitionDuration = \"0.05s\";\n style.transitionProperty = \"padding\";\n style.transitionDelay = \"0s\";\n style.paddingTop = getInset(\"top\");\n style.paddingBottom = getInset(\"bottom\");\n style.paddingLeft = getInset(\"left\");\n style.paddingRight = getInset(\"right\");\n return element;\n}\nexport {\n NativeSafeAreaProvider\n};\n//# sourceMappingURL=NativeSafeAreaProvider.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=SafeArea-types.mjs.map
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=SafeArea-types.native.js.map
@@ -2,104 +2,92 @@ import * as React from "react";
2
2
  import { NativeSafeAreaProvider } from "./NativeSafeAreaProvider.mjs";
3
3
  import { getWindowFrame } from "./getWindowFrame.mjs";
4
4
  import { jsx } from "react/jsx-runtime";
5
+
5
6
  const isDev = process.env.NODE_ENV !== "production";
6
7
  const SafeAreaInsetsContext = React.createContext(null);
7
8
  if (isDev) {
8
- SafeAreaInsetsContext.displayName = "SafeAreaInsetsContext";
9
+ SafeAreaInsetsContext.displayName = "SafeAreaInsetsContext";
9
10
  }
10
11
  const SafeAreaFrameContext = React.createContext(null);
11
12
  if (isDev) {
12
- SafeAreaFrameContext.displayName = "SafeAreaFrameContext";
13
+ SafeAreaFrameContext.displayName = "SafeAreaFrameContext";
13
14
  }
14
15
  const ZERO_INSETS = {
15
- top: 0,
16
- bottom: 0,
17
- left: 0,
18
- right: 0
16
+ top: 0,
17
+ bottom: 0,
18
+ left: 0,
19
+ right: 0
19
20
  };
20
- function SafeAreaProvider({
21
- children,
22
- initialMetrics,
23
- initialSafeAreaInsets,
24
- ...others
25
- }) {
26
- const parentInsets = useParentSafeAreaInsets();
27
- const parentFrame = useParentSafeAreaFrame();
28
- const [insets, setInsets] = React.useState(initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? ZERO_INSETS);
29
- const [frame, setFrame] = React.useState(initialMetrics?.frame ?? parentFrame ??
30
- // backwards compat so we render anyway if we don't have frame.
31
- getWindowFrame());
32
- const onInsetsChange = React.useCallback(event => {
33
- const {
34
- nativeEvent: {
35
- frame: nextFrame,
36
- insets: nextInsets
37
- }
38
- } = event;
39
- React.startTransition(() => {
40
- setFrame(curFrame => {
41
- if (
42
- // Backwards compat with old native code that won't send frame.
43
- nextFrame && (nextFrame.height !== curFrame.height || nextFrame.width !== curFrame.width || nextFrame.x !== curFrame.x || nextFrame.y !== curFrame.y)) {
44
- return nextFrame;
45
- }
46
- return curFrame;
47
- });
48
- setInsets(curInsets => {
49
- if (!curInsets || nextInsets.bottom !== curInsets.bottom || nextInsets.left !== curInsets.left || nextInsets.right !== curInsets.right || nextInsets.top !== curInsets.top) {
50
- return nextInsets;
51
- }
52
- return curInsets;
53
- });
54
- });
55
- }, []);
56
- return /* @__PURE__ */jsx(NativeSafeAreaProvider, {
57
- onInsetsChange,
58
- ...others,
59
- children: /* @__PURE__ */jsx(SafeAreaFrameContext.Provider, {
60
- value: frame,
61
- children: /* @__PURE__ */jsx(SafeAreaInsetsContext.Provider, {
62
- value: insets,
63
- children
64
- })
65
- })
66
- });
21
+ function SafeAreaProvider({ children, initialMetrics, initialSafeAreaInsets, ...others }) {
22
+ const parentInsets = useParentSafeAreaInsets();
23
+ const parentFrame = useParentSafeAreaFrame();
24
+ const [insets, setInsets] = React.useState(initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? ZERO_INSETS);
25
+ const [frame, setFrame] = React.useState(initialMetrics?.frame ?? parentFrame ?? getWindowFrame());
26
+ const onInsetsChange = React.useCallback((event) => {
27
+ const { nativeEvent: { frame: nextFrame, insets: nextInsets } } = event;
28
+ React.startTransition(() => {
29
+ setFrame((curFrame) => {
30
+ if (nextFrame && (nextFrame.height !== curFrame.height || nextFrame.width !== curFrame.width || nextFrame.x !== curFrame.x || nextFrame.y !== curFrame.y)) {
31
+ return nextFrame;
32
+ }
33
+ return curFrame;
34
+ });
35
+ setInsets((curInsets) => {
36
+ if (!curInsets || nextInsets.bottom !== curInsets.bottom || nextInsets.left !== curInsets.left || nextInsets.right !== curInsets.right || nextInsets.top !== curInsets.top) {
37
+ return nextInsets;
38
+ }
39
+ return curInsets;
40
+ });
41
+ });
42
+ }, []);
43
+ return /* @__PURE__ */ jsx(NativeSafeAreaProvider, {
44
+ onInsetsChange,
45
+ ...others,
46
+ children: /* @__PURE__ */ jsx(SafeAreaFrameContext.Provider, {
47
+ value: frame,
48
+ children: /* @__PURE__ */ jsx(SafeAreaInsetsContext.Provider, {
49
+ value: insets,
50
+ children
51
+ })
52
+ })
53
+ });
67
54
  }
68
55
  function useParentSafeAreaInsets() {
69
- return React.useContext(SafeAreaInsetsContext);
56
+ return React.useContext(SafeAreaInsetsContext);
70
57
  }
71
58
  function useParentSafeAreaFrame() {
72
- return React.useContext(SafeAreaFrameContext);
59
+ return React.useContext(SafeAreaFrameContext);
73
60
  }
74
61
  const NO_INSETS_ERROR = "No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.";
75
62
  function useSafeAreaInsets() {
76
- const insets = React.useContext(SafeAreaInsetsContext);
77
- if (insets == null) {
78
- throw new Error(NO_INSETS_ERROR);
79
- }
80
- return insets;
63
+ const insets = React.useContext(SafeAreaInsetsContext);
64
+ if (insets == null) {
65
+ throw new Error(NO_INSETS_ERROR);
66
+ }
67
+ return insets;
81
68
  }
82
69
  function useSafeAreaFrame() {
83
- const frame = React.useContext(SafeAreaFrameContext);
84
- if (frame == null) {
85
- throw new Error(NO_INSETS_ERROR);
86
- }
87
- return frame;
70
+ const frame = React.useContext(SafeAreaFrameContext);
71
+ if (frame == null) {
72
+ throw new Error(NO_INSETS_ERROR);
73
+ }
74
+ return frame;
88
75
  }
89
76
  function withSafeAreaInsets(WrappedComponent) {
90
- return React.forwardRef((props, ref) => {
91
- const insets = useSafeAreaInsets();
92
- return /* @__PURE__ */jsx(WrappedComponent, {
93
- ...props,
94
- insets,
95
- ref
96
- });
97
- });
77
+ return React.forwardRef((props, ref) => {
78
+ const insets = useSafeAreaInsets();
79
+ return /* @__PURE__ */ jsx(WrappedComponent, {
80
+ ...props,
81
+ insets,
82
+ ref
83
+ });
84
+ });
98
85
  }
99
86
  function useSafeArea() {
100
- return useSafeAreaInsets();
87
+ return useSafeAreaInsets();
101
88
  }
102
89
  const SafeAreaConsumer = SafeAreaInsetsContext.Consumer;
103
90
  const SafeAreaContext = SafeAreaInsetsContext;
91
+
104
92
  export { SafeAreaConsumer, SafeAreaContext, SafeAreaFrameContext, SafeAreaInsetsContext, SafeAreaProvider, useSafeArea, useSafeAreaFrame, useSafeAreaInsets, withSafeAreaInsets };
105
93
  //# sourceMappingURL=SafeAreaContext.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","NativeSafeAreaProvider","getWindowFrame","jsx","isDev","process","env","NODE_ENV","SafeAreaInsetsContext","createContext","displayName","SafeAreaFrameContext","ZERO_INSETS","top","bottom","left","right","SafeAreaProvider","children","initialMetrics","initialSafeAreaInsets","others","parentInsets","useParentSafeAreaInsets","parentFrame","useParentSafeAreaFrame","insets","setInsets","useState","frame","setFrame","onInsetsChange","useCallback","event","nativeEvent","nextFrame","nextInsets","startTransition","curFrame","height","width","x","y","curInsets","Provider","value","useContext","NO_INSETS_ERROR","useSafeAreaInsets","Error","useSafeAreaFrame","withSafeAreaInsets","WrappedComponent","forwardRef","props","ref","useSafeArea","SafeAreaConsumer","Consumer","SafeAreaContext"],"sources":["../../src/SafeAreaContext.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SafeAreaContext.js","names":[],"sources":["esm/SafeAreaContext.js"],"sourcesContent":["import * as React from \"react\";\nimport { NativeSafeAreaProvider } from \"./NativeSafeAreaProvider\";\nimport { getWindowFrame } from \"./getWindowFrame\";\nimport { jsx } from \"react/jsx-runtime\";\nconst isDev = process.env.NODE_ENV !== \"production\";\nconst SafeAreaInsetsContext = React.createContext(null);\nif (isDev) {\n SafeAreaInsetsContext.displayName = \"SafeAreaInsetsContext\";\n}\nconst SafeAreaFrameContext = React.createContext(null);\nif (isDev) {\n SafeAreaFrameContext.displayName = \"SafeAreaFrameContext\";\n}\nconst ZERO_INSETS = { top: 0, bottom: 0, left: 0, right: 0 };\nfunction SafeAreaProvider({\n children,\n initialMetrics,\n initialSafeAreaInsets,\n ...others\n}) {\n const parentInsets = useParentSafeAreaInsets();\n const parentFrame = useParentSafeAreaFrame();\n const [insets, setInsets] = React.useState(\n initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? ZERO_INSETS\n );\n const [frame, setFrame] = React.useState(\n initialMetrics?.frame ?? parentFrame ?? // backwards compat so we render anyway if we don't have frame.\n getWindowFrame()\n );\n const onInsetsChange = React.useCallback((event) => {\n const {\n nativeEvent: { frame: nextFrame, insets: nextInsets }\n } = event;\n React.startTransition(() => {\n setFrame((curFrame) => {\n if (\n // Backwards compat with old native code that won't send frame.\n nextFrame && (nextFrame.height !== curFrame.height || nextFrame.width !== curFrame.width || nextFrame.x !== curFrame.x || nextFrame.y !== curFrame.y)\n ) {\n return nextFrame;\n }\n return curFrame;\n });\n setInsets((curInsets) => {\n if (!curInsets || nextInsets.bottom !== curInsets.bottom || nextInsets.left !== curInsets.left || nextInsets.right !== curInsets.right || nextInsets.top !== curInsets.top) {\n return nextInsets;\n }\n return curInsets;\n });\n });\n }, []);\n return /* @__PURE__ */ jsx(NativeSafeAreaProvider, { onInsetsChange, ...others, children: /* @__PURE__ */ jsx(SafeAreaFrameContext.Provider, { value: frame, children: /* @__PURE__ */ jsx(SafeAreaInsetsContext.Provider, { value: insets, children }) }) });\n}\nfunction useParentSafeAreaInsets() {\n return React.useContext(SafeAreaInsetsContext);\n}\nfunction useParentSafeAreaFrame() {\n return React.useContext(SafeAreaFrameContext);\n}\nconst NO_INSETS_ERROR = \"No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.\";\nfunction useSafeAreaInsets() {\n const insets = React.useContext(SafeAreaInsetsContext);\n if (insets == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return insets;\n}\nfunction useSafeAreaFrame() {\n const frame = React.useContext(SafeAreaFrameContext);\n if (frame == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return frame;\n}\nfunction withSafeAreaInsets(WrappedComponent) {\n return React.forwardRef((props, ref) => {\n const insets = useSafeAreaInsets();\n return /* @__PURE__ */ jsx(WrappedComponent, { ...props, insets, ref });\n });\n}\nfunction useSafeArea() {\n return useSafeAreaInsets();\n}\nconst SafeAreaConsumer = SafeAreaInsetsContext.Consumer;\nconst SafeAreaContext = SafeAreaInsetsContext;\nexport {\n SafeAreaConsumer,\n SafeAreaContext,\n SafeAreaFrameContext,\n SafeAreaInsetsContext,\n SafeAreaProvider,\n useSafeArea,\n useSafeAreaFrame,\n useSafeAreaInsets,\n withSafeAreaInsets\n};\n//# sourceMappingURL=SafeAreaContext.js.map\n"],"mappings":";;;;;;AAIA,MAAM,QAAQ,QAAQ,IAAI,aAAa;AACvC,MAAM,wBAAwB,MAAM,cAAc,IAAI;AACtD,IAAI,OAAO;CACT,sBAAsB,cAAc;AACtC;AACA,MAAM,uBAAuB,MAAM,cAAc,IAAI;AACrD,IAAI,OAAO;CACT,qBAAqB,cAAc;AACrC;AACA,MAAM,cAAc;CAAE,KAAK;CAAG,QAAQ;CAAG,MAAM;CAAG,OAAO;AAAE;AAC3D,SAAS,iBAAiB,EACxB,UACA,gBACA,uBACA,GAAG,UACF;CACD,MAAM,eAAe,wBAAwB;CAC7C,MAAM,cAAc,uBAAuB;CAC3C,MAAM,CAAC,QAAQ,aAAa,MAAM,SAChC,gBAAgB,UAAU,yBAAyB,gBAAgB,WACrE;CACA,MAAM,CAAC,OAAO,YAAY,MAAM,SAC9B,gBAAgB,SAAS,eACzB,eAAe,CACjB;CACA,MAAM,iBAAiB,MAAM,aAAa,UAAU;EAClD,MAAM,EACJ,aAAa,EAAE,OAAO,WAAW,QAAQ,iBACvC;EACJ,MAAM,sBAAsB;GAC1B,UAAU,aAAa;IACrB,IAEE,cAAc,UAAU,WAAW,SAAS,UAAU,UAAU,UAAU,SAAS,SAAS,UAAU,MAAM,SAAS,KAAK,UAAU,MAAM,SAAS,IACnJ;KACA,OAAO;IACT;IACA,OAAO;GACT,CAAC;GACD,WAAW,cAAc;IACvB,IAAI,CAAC,aAAa,WAAW,WAAW,UAAU,UAAU,WAAW,SAAS,UAAU,QAAQ,WAAW,UAAU,UAAU,SAAS,WAAW,QAAQ,UAAU,KAAK;KAC1K,OAAO;IACT;IACA,OAAO;GACT,CAAC;EACH,CAAC;CACH,GAAG,CAAC,CAAC;CACL,OAAuB,oBAAI,wBAAwB;EAAE;EAAgB,GAAG;EAAQ,UAA0B,oBAAI,qBAAqB,UAAU;GAAE,OAAO;GAAO,UAA0B,oBAAI,sBAAsB,UAAU;IAAE,OAAO;IAAQ;GAAS,CAAC;EAAE,CAAC;CAAE,CAAC;AAC9P;AACA,SAAS,0BAA0B;CACjC,OAAO,MAAM,WAAW,qBAAqB;AAC/C;AACA,SAAS,yBAAyB;CAChC,OAAO,MAAM,WAAW,oBAAoB;AAC9C;AACA,MAAM,kBAAkB;AACxB,SAAS,oBAAoB;CAC3B,MAAM,SAAS,MAAM,WAAW,qBAAqB;CACrD,IAAI,UAAU,MAAM;EAClB,MAAM,IAAI,MAAM,eAAe;CACjC;CACA,OAAO;AACT;AACA,SAAS,mBAAmB;CAC1B,MAAM,QAAQ,MAAM,WAAW,oBAAoB;CACnD,IAAI,SAAS,MAAM;EACjB,MAAM,IAAI,MAAM,eAAe;CACjC;CACA,OAAO;AACT;AACA,SAAS,mBAAmB,kBAAkB;CAC5C,OAAO,MAAM,YAAY,OAAO,QAAQ;EACtC,MAAM,SAAS,kBAAkB;EACjC,OAAuB,oBAAI,kBAAkB;GAAE,GAAG;GAAO;GAAQ;EAAI,CAAC;CACxE,CAAC;AACH;AACA,SAAS,cAAc;CACrB,OAAO,kBAAkB;AAC3B;AACA,MAAM,mBAAmB,sBAAsB;AAC/C,MAAM,kBAAkB"}