@amazon-devices/react-native-safe-area-context 2.0.1758683737 → 8.0.9000000000

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 (258) hide show
  1. package/README.md +6 -302
  2. package/SystemBundles/3e1c492419a85957481898df760cf9cf3bd38d3e26ef2e78822fb256fdee0153.bundle +7373 -0
  3. package/SystemBundles/3e1c492419a85957481898df760cf9cf3bd38d3e26ef2e78822fb256fdee0153.map +2780 -0
  4. package/SystemModules/amzn__react-native-safe-area-context-8.modules.txt +7 -0
  5. package/SystemModules/amzn__react-native-safe-area-context-8.private.modules.txt +61 -0
  6. package/SystemModules/keplerscript-system-bundle-config.json +3 -3
  7. package/android/build.gradle +103 -25
  8. package/android/gradle.properties +1 -0
  9. package/android/spotless.gradle +24 -0
  10. package/android/src/fabric/java/com/th3rdwave/safeareacontext/InsetsChangeEvent.kt +25 -0
  11. package/android/src/fabric/java/com/th3rdwave/safeareacontext/UIManagerHelperCompat.kt +14 -0
  12. package/android/src/main/AndroidManifest.xml +1 -2
  13. package/android/src/main/java/com/th3rdwave/safeareacontext/EdgeInsets.kt +3 -0
  14. package/android/src/main/java/com/th3rdwave/safeareacontext/Rect.kt +3 -0
  15. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextModule.kt +32 -0
  16. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextPackage.kt +41 -0
  17. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaProvider.kt +47 -0
  18. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaProviderManager.kt +41 -0
  19. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaUtils.kt +102 -0
  20. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.kt +155 -0
  21. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewEdges.kt +16 -0
  22. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewLocalData.kt +7 -0
  23. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewManager.kt +73 -0
  24. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewMode.kt +6 -0
  25. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewShadowNode.kt +170 -0
  26. package/android/src/main/java/com/th3rdwave/safeareacontext/SerializationUtils.kt +39 -0
  27. package/android/src/main/jni/CMakeLists.txt +87 -0
  28. package/android/src/main/jni/safeareacontext.h +17 -0
  29. package/android/src/paper/java/com/facebook/react/viewmanagers/RNCSafeAreaProviderManagerDelegate.java +31 -0
  30. package/android/src/paper/java/com/facebook/react/viewmanagers/RNCSafeAreaProviderManagerInterface.java +16 -0
  31. package/android/src/paper/java/com/facebook/react/viewmanagers/RNCSafeAreaViewManagerDelegate.java +41 -0
  32. package/android/src/paper/java/com/facebook/react/viewmanagers/RNCSafeAreaViewManagerInterface.java +20 -0
  33. package/android/src/paper/java/com/th3rdwave/safeareacontext/InsetsChangeEvent.kt +29 -0
  34. package/android/src/paper/java/com/th3rdwave/safeareacontext/NativeSafeAreaContextSpec.java +56 -0
  35. package/android/src/paper/java/com/th3rdwave/safeareacontext/UIManagerHelperCompat.kt +20 -0
  36. package/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewComponentDescriptor.h +25 -0
  37. package/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp +131 -0
  38. package/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h +36 -0
  39. package/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp +23 -0
  40. package/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h +56 -0
  41. package/ios/Fabric/RNCSafeAreaProviderComponentView.h +13 -0
  42. package/ios/Fabric/RNCSafeAreaProviderComponentView.mm +129 -0
  43. package/ios/Fabric/RNCSafeAreaViewComponentView.h +11 -0
  44. package/ios/Fabric/RNCSafeAreaViewComponentView.mm +153 -0
  45. package/ios/RNCSafeAreaContext.h +9 -0
  46. package/ios/RNCSafeAreaContext.mm +85 -0
  47. package/ios/{SafeAreaView/RNCSafeAreaProvider.h → RNCSafeAreaProvider.h} +4 -0
  48. package/ios/RNCSafeAreaProvider.m +102 -0
  49. package/ios/RNCSafeAreaProviderManager.m +20 -0
  50. package/ios/{SafeAreaView/RNCSafeAreaShadowView.m → RNCSafeAreaShadowView.m} +50 -36
  51. package/ios/RNCSafeAreaUtils.h +22 -0
  52. package/ios/RNCSafeAreaUtils.m +41 -0
  53. package/ios/{SafeAreaView/RNCSafeAreaView.h → RNCSafeAreaView.h} +8 -4
  54. package/ios/RNCSafeAreaView.m +168 -0
  55. package/ios/RNCSafeAreaViewEdgeMode.h +12 -0
  56. package/ios/RNCSafeAreaViewEdgeMode.m +16 -0
  57. package/ios/RNCSafeAreaViewEdges.h +15 -0
  58. package/ios/RNCSafeAreaViewEdges.m +36 -0
  59. package/ios/{SafeAreaView/RNCSafeAreaViewLocalData.h → RNCSafeAreaViewLocalData.h} +12 -1
  60. package/ios/{SafeAreaView/RNCSafeAreaViewLocalData.m → RNCSafeAreaViewLocalData.m} +4 -0
  61. package/ios/{SafeAreaView/RNCSafeAreaViewManager.m → RNCSafeAreaViewManager.m} +5 -1
  62. package/ios/RNCSafeAreaViewMode.m +15 -0
  63. package/ios/{SafeAreaView.xcodeproj → RNSafeAreaContext.xcodeproj}/project.pbxproj +70 -56
  64. package/jest/mock.tsx +59 -0
  65. package/kepler-compatibility.json +2 -4
  66. package/lib/commonjs/CompatNativeSafeAreaProvider.js +7 -8
  67. package/lib/commonjs/CompatNativeSafeAreaProvider.js.map +1 -1
  68. package/lib/commonjs/InitialWindow.js.map +1 -1
  69. package/lib/commonjs/InitialWindow.kepler.js +1 -1
  70. package/lib/commonjs/InitialWindow.kepler.js.map +1 -1
  71. package/lib/commonjs/InitialWindow.native.js +4 -4
  72. package/lib/commonjs/InitialWindow.native.js.map +1 -1
  73. package/lib/commonjs/NativeSafeAreaProvider.js +7 -125
  74. package/lib/commonjs/NativeSafeAreaProvider.js.map +1 -1
  75. package/lib/commonjs/NativeSafeAreaProvider.kepler.js +6 -2
  76. package/lib/commonjs/NativeSafeAreaProvider.kepler.js.map +1 -1
  77. package/lib/commonjs/NativeSafeAreaProvider.web.js +135 -0
  78. package/lib/commonjs/NativeSafeAreaProvider.web.js.map +1 -0
  79. package/lib/commonjs/NativeSafeAreaProvider.windows.js +6 -2
  80. package/lib/commonjs/NativeSafeAreaProvider.windows.js.map +1 -1
  81. package/lib/commonjs/SafeArea.types.js.map +1 -1
  82. package/lib/commonjs/SafeAreaContext.js +56 -36
  83. package/lib/commonjs/SafeAreaContext.js.map +1 -1
  84. package/lib/commonjs/SafeAreaView.js +40 -73
  85. package/lib/commonjs/SafeAreaView.js.map +1 -1
  86. package/lib/commonjs/SafeAreaView.kepler.js.map +1 -1
  87. package/lib/commonjs/SafeAreaView.web.js +91 -0
  88. package/lib/commonjs/SafeAreaView.web.js.map +1 -0
  89. package/lib/commonjs/SafeAreaView.windows.js.map +1 -1
  90. package/lib/commonjs/index.js +1 -0
  91. package/lib/commonjs/index.js.map +1 -1
  92. package/lib/commonjs/package.json +1 -0
  93. package/lib/commonjs/specs/NativeSafeAreaContext.js +9 -0
  94. package/lib/commonjs/specs/NativeSafeAreaContext.js.map +1 -0
  95. package/lib/commonjs/specs/NativeSafeAreaProvider.js +10 -0
  96. package/lib/commonjs/specs/NativeSafeAreaProvider.js.map +1 -0
  97. package/lib/commonjs/specs/NativeSafeAreaView.js +12 -0
  98. package/lib/commonjs/specs/NativeSafeAreaView.js.map +1 -0
  99. package/lib/module/CompatNativeSafeAreaProvider.js +8 -5
  100. package/lib/module/CompatNativeSafeAreaProvider.js.map +1 -1
  101. package/lib/module/InitialWindow.js +2 -0
  102. package/lib/module/InitialWindow.js.map +1 -1
  103. package/lib/module/InitialWindow.kepler.js +3 -1
  104. package/lib/module/InitialWindow.kepler.js.map +1 -1
  105. package/lib/module/InitialWindow.native.js +5 -4
  106. package/lib/module/InitialWindow.native.js.map +1 -1
  107. package/lib/module/NativeSafeAreaProvider.js +3 -122
  108. package/lib/module/NativeSafeAreaProvider.js.map +1 -1
  109. package/lib/module/NativeSafeAreaProvider.kepler.js +3 -2
  110. package/lib/module/NativeSafeAreaProvider.kepler.js.map +1 -1
  111. package/lib/module/NativeSafeAreaProvider.web.js +130 -0
  112. package/lib/module/NativeSafeAreaProvider.web.js.map +1 -0
  113. package/lib/module/NativeSafeAreaProvider.windows.js +3 -2
  114. package/lib/module/NativeSafeAreaProvider.windows.js.map +1 -1
  115. package/lib/module/SafeArea.types.js +2 -0
  116. package/lib/module/SafeArea.types.js.map +1 -1
  117. package/lib/module/SafeAreaContext.js +57 -33
  118. package/lib/module/SafeAreaContext.js.map +1 -1
  119. package/lib/module/SafeAreaView.js +38 -69
  120. package/lib/module/SafeAreaView.js.map +1 -1
  121. package/lib/module/SafeAreaView.kepler.js +2 -0
  122. package/lib/module/SafeAreaView.kepler.js.map +1 -1
  123. package/lib/module/SafeAreaView.web.js +86 -0
  124. package/lib/module/SafeAreaView.web.js.map +1 -0
  125. package/lib/module/SafeAreaView.windows.js +2 -0
  126. package/lib/module/SafeAreaView.windows.js.map +1 -1
  127. package/lib/module/index.js +3 -0
  128. package/lib/module/index.js.map +1 -1
  129. package/lib/module/specs/NativeSafeAreaContext.js +5 -0
  130. package/lib/module/specs/NativeSafeAreaContext.js.map +1 -0
  131. package/lib/module/specs/NativeSafeAreaProvider.js +5 -0
  132. package/lib/module/specs/NativeSafeAreaProvider.js.map +1 -0
  133. package/lib/module/specs/NativeSafeAreaView.js +7 -0
  134. package/lib/module/specs/NativeSafeAreaView.js.map +1 -0
  135. package/lib/typescript/CompatNativeSafeAreaProvider.d.ts +4 -0
  136. package/lib/typescript/CompatNativeSafeAreaProvider.d.ts.map +1 -0
  137. package/lib/typescript/{src/InitialWindow.d.ts → InitialWindow.d.ts} +2 -1
  138. package/lib/typescript/InitialWindow.d.ts.map +1 -0
  139. package/lib/typescript/{src/InitialWindow.kepler.d.ts → InitialWindow.kepler.d.ts} +1 -0
  140. package/lib/typescript/InitialWindow.kepler.d.ts.map +1 -0
  141. package/lib/typescript/{src/InitialWindow.native.d.ts → InitialWindow.native.d.ts} +2 -1
  142. package/lib/typescript/InitialWindow.native.d.ts.map +1 -0
  143. package/lib/typescript/NativeSafeAreaProvider.d.ts +3 -0
  144. package/lib/typescript/NativeSafeAreaProvider.d.ts.map +1 -0
  145. package/lib/typescript/NativeSafeAreaProvider.kepler.d.ts +2 -0
  146. package/lib/typescript/NativeSafeAreaProvider.kepler.d.ts.map +1 -0
  147. package/lib/typescript/NativeSafeAreaProvider.web.d.ts +4 -0
  148. package/lib/typescript/NativeSafeAreaProvider.web.d.ts.map +1 -0
  149. package/lib/typescript/NativeSafeAreaProvider.windows.d.ts +2 -0
  150. package/lib/typescript/NativeSafeAreaProvider.windows.d.ts.map +1 -0
  151. package/lib/typescript/SafeArea.types.d.ts +36 -0
  152. package/lib/typescript/SafeArea.types.d.ts.map +1 -0
  153. package/lib/typescript/{src/SafeAreaContext.d.ts → SafeAreaContext.d.ts} +9 -6
  154. package/lib/typescript/SafeAreaContext.d.ts.map +1 -0
  155. package/lib/typescript/SafeAreaView.d.ts +5 -0
  156. package/lib/typescript/SafeAreaView.d.ts.map +1 -0
  157. package/lib/typescript/{src/SafeAreaView.kepler.d.ts → SafeAreaView.kepler.d.ts} +1 -0
  158. package/lib/typescript/SafeAreaView.kepler.d.ts.map +1 -0
  159. package/lib/typescript/SafeAreaView.web.d.ts +4 -0
  160. package/lib/typescript/SafeAreaView.web.d.ts.map +1 -0
  161. package/lib/typescript/SafeAreaView.windows.d.ts +3 -0
  162. package/lib/typescript/SafeAreaView.windows.d.ts.map +1 -0
  163. package/lib/typescript/{src/index.d.ts → index.d.ts} +1 -0
  164. package/lib/typescript/index.d.ts.map +1 -0
  165. package/lib/typescript/specs/NativeSafeAreaContext.d.ts +23 -0
  166. package/lib/typescript/specs/NativeSafeAreaContext.d.ts.map +1 -0
  167. package/lib/typescript/specs/NativeSafeAreaProvider.d.ts +22 -0
  168. package/lib/typescript/specs/NativeSafeAreaProvider.d.ts.map +1 -0
  169. package/lib/typescript/specs/NativeSafeAreaView.d.ts +14 -0
  170. package/lib/typescript/specs/NativeSafeAreaView.d.ts.map +1 -0
  171. package/package.json +1 -1
  172. package/react-native-safe-area-context.podspec +26 -4
  173. package/react-native.config.js +8 -0
  174. package/src/CompatNativeSafeAreaProvider.tsx +2 -3
  175. package/src/InitialWindow.kepler.ts +1 -1
  176. package/src/InitialWindow.native.ts +5 -11
  177. package/src/InitialWindow.ts +1 -1
  178. package/src/NativeSafeAreaProvider.kepler.tsx +1 -3
  179. package/src/NativeSafeAreaProvider.tsx +2 -128
  180. package/src/NativeSafeAreaProvider.web.tsx +127 -0
  181. package/src/NativeSafeAreaProvider.windows.tsx +1 -3
  182. package/src/SafeArea.types.ts +15 -11
  183. package/src/SafeAreaContext.tsx +66 -43
  184. package/src/SafeAreaView.tsx +47 -82
  185. package/src/SafeAreaView.web.tsx +123 -0
  186. package/src/SafeAreaView.windows.tsx +2 -1
  187. package/src/index.tsx +2 -0
  188. package/src/specs/NativeSafeAreaContext.ts +23 -0
  189. package/src/specs/NativeSafeAreaProvider.ts +29 -0
  190. package/src/specs/NativeSafeAreaView.ts +17 -0
  191. package/SystemBundles/e3c0cdeab56b8b622d4f0fd5a80812eafe199fa2287d0e3a09c5e573a1035350.bundle +0 -11031
  192. package/SystemBundles/e3c0cdeab56b8b622d4f0fd5a80812eafe199fa2287d0e3a09c5e573a1035350.map +0 -1
  193. package/SystemModules/amzn__react-native-safe-area-context-2.modules.txt +0 -55
  194. package/SystemModules/amzn__react-native-safe-area-context-2.private.modules.txt +0 -91
  195. package/THIRD_PARTY_NOTICES.txt +0 -24
  196. package/android/src/main/java/com/th3rdwave/safeareacontext/EdgeInsets.java +0 -22
  197. package/android/src/main/java/com/th3rdwave/safeareacontext/InsetsChangeEvent.java +0 -33
  198. package/android/src/main/java/com/th3rdwave/safeareacontext/Rect.java +0 -22
  199. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextPackage.java +0 -31
  200. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaProvider.java +0 -66
  201. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaProviderManager.java +0 -94
  202. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaUtils.java +0 -82
  203. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.java +0 -159
  204. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewEdges.java +0 -8
  205. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewLocalData.java +0 -27
  206. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewManager.java +0 -72
  207. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewMode.java +0 -6
  208. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewShadowNode.java +0 -201
  209. package/android/src/main/java/com/th3rdwave/safeareacontext/SerializationUtils.java +0 -52
  210. package/ios/SafeAreaView/RCTView+SafeAreaCompat.h +0 -16
  211. package/ios/SafeAreaView/RCTView+SafeAreaCompat.m +0 -57
  212. package/ios/SafeAreaView/RNCSafeAreaProvider.m +0 -65
  213. package/ios/SafeAreaView/RNCSafeAreaProviderManager.m +0 -61
  214. package/ios/SafeAreaView/RNCSafeAreaView.m +0 -118
  215. package/ios/SafeAreaView/RNCSafeAreaViewEdges.h +0 -9
  216. package/ios/SafeAreaView/RNCSafeAreaViewEdges.m +0 -13
  217. package/ios/SafeAreaView/RNCSafeAreaViewMode.m +0 -11
  218. package/lib/commonjs/NativeSafeAreaProvider.macos.js +0 -9
  219. package/lib/commonjs/NativeSafeAreaProvider.macos.js.map +0 -1
  220. package/lib/commonjs/NativeSafeAreaProvider.native.js +0 -9
  221. package/lib/commonjs/NativeSafeAreaProvider.native.js.map +0 -1
  222. package/lib/commonjs/SafeAreaView.macos.js +0 -9
  223. package/lib/commonjs/SafeAreaView.macos.js.map +0 -1
  224. package/lib/commonjs/SafeAreaView.native.js +0 -9
  225. package/lib/commonjs/SafeAreaView.native.js.map +0 -1
  226. package/lib/commonjs/useWindowDimensions.js +0 -32
  227. package/lib/commonjs/useWindowDimensions.js.map +0 -1
  228. package/lib/module/NativeSafeAreaProvider.macos.js +0 -3
  229. package/lib/module/NativeSafeAreaProvider.macos.js.map +0 -1
  230. package/lib/module/NativeSafeAreaProvider.native.js +0 -3
  231. package/lib/module/NativeSafeAreaProvider.native.js.map +0 -1
  232. package/lib/module/SafeAreaView.macos.js +0 -3
  233. package/lib/module/SafeAreaView.macos.js.map +0 -1
  234. package/lib/module/SafeAreaView.native.js +0 -3
  235. package/lib/module/SafeAreaView.native.js.map +0 -1
  236. package/lib/module/useWindowDimensions.js +0 -26
  237. package/lib/module/useWindowDimensions.js.map +0 -1
  238. package/lib/typescript/src/CompatNativeSafeAreaProvider.d.ts +0 -2
  239. package/lib/typescript/src/NativeSafeAreaProvider.d.ts +0 -2
  240. package/lib/typescript/src/NativeSafeAreaProvider.kepler.d.ts +0 -2
  241. package/lib/typescript/src/NativeSafeAreaProvider.macos.d.ts +0 -2
  242. package/lib/typescript/src/NativeSafeAreaProvider.native.d.ts +0 -3
  243. package/lib/typescript/src/NativeSafeAreaProvider.windows.d.ts +0 -2
  244. package/lib/typescript/src/SafeArea.types.d.ts +0 -31
  245. package/lib/typescript/src/SafeAreaView.d.ts +0 -2
  246. package/lib/typescript/src/SafeAreaView.macos.d.ts +0 -2
  247. package/lib/typescript/src/SafeAreaView.native.d.ts +0 -2
  248. package/lib/typescript/src/SafeAreaView.windows.d.ts +0 -2
  249. package/lib/typescript/src/useWindowDimensions.d.ts +0 -8
  250. package/src/NativeSafeAreaProvider.macos.tsx +0 -3
  251. package/src/NativeSafeAreaProvider.native.tsx +0 -6
  252. package/src/SafeAreaView.macos.tsx +0 -3
  253. package/src/SafeAreaView.native.tsx +0 -6
  254. package/src/useWindowDimensions.tsx +0 -35
  255. /package/ios/{SafeAreaView/RNCSafeAreaProviderManager.h → RNCSafeAreaProviderManager.h} +0 -0
  256. /package/ios/{SafeAreaView/RNCSafeAreaShadowView.h → RNCSafeAreaShadowView.h} +0 -0
  257. /package/ios/{SafeAreaView/RNCSafeAreaViewManager.h → RNCSafeAreaViewManager.h} +0 -0
  258. /package/ios/{SafeAreaView/RNCSafeAreaViewMode.h → RNCSafeAreaViewMode.h} +0 -0
@@ -1,22 +1,29 @@
1
- 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); }
1
+ "use strict";
2
+
2
3
  import * as React from 'react';
3
4
  import { Dimensions, StyleSheet } from 'react-native';
4
- import NativeSafeAreaProvider from './NativeSafeAreaProvider';
5
+ import { NativeSafeAreaProvider } from './NativeSafeAreaProvider';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const isDev = process.env.NODE_ENV !== 'production';
5
8
  export const SafeAreaInsetsContext = /*#__PURE__*/React.createContext(null);
6
- SafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';
9
+ if (isDev) {
10
+ SafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';
11
+ }
7
12
  export const SafeAreaFrameContext = /*#__PURE__*/React.createContext(null);
8
- SafeAreaFrameContext.displayName = 'SafeAreaFrameContext';
13
+ if (isDev) {
14
+ SafeAreaFrameContext.displayName = 'SafeAreaFrameContext';
15
+ }
9
16
  export function SafeAreaProvider({
10
17
  children,
11
18
  initialMetrics,
12
19
  initialSafeAreaInsets,
13
- style
20
+ style,
21
+ ...others
14
22
  }) {
15
- var _ref, _ref2, _initialMetrics$inset, _ref3, _initialMetrics$frame;
16
23
  const parentInsets = useParentSafeAreaInsets();
17
24
  const parentFrame = useParentSafeAreaFrame();
18
- const [insets, setInsets] = React.useState((_ref = (_ref2 = (_initialMetrics$inset = initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.insets) !== null && _initialMetrics$inset !== void 0 ? _initialMetrics$inset : initialSafeAreaInsets) !== null && _ref2 !== void 0 ? _ref2 : parentInsets) !== null && _ref !== void 0 ? _ref : null);
19
- const [frame, setFrame] = React.useState((_ref3 = (_initialMetrics$frame = initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.frame) !== null && _initialMetrics$frame !== void 0 ? _initialMetrics$frame : parentFrame) !== null && _ref3 !== void 0 ? _ref3 : {
25
+ const [insets, setInsets] = React.useState(initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? null);
26
+ const [frame, setFrame] = React.useState(initialMetrics?.frame ?? parentFrame ?? {
20
27
  // Backwards compat so we render anyway if we don't have frame.
21
28
  x: 0,
22
29
  y: 0,
@@ -30,23 +37,35 @@ export function SafeAreaProvider({
30
37
  insets: nextInsets
31
38
  }
32
39
  } = event;
33
- if (
34
- // Backwards compat with old native code that won't send frame.
35
- nextFrame && (nextFrame.height !== frame.height || nextFrame.width !== frame.width || nextFrame.x !== frame.x || nextFrame.y !== frame.y)) {
36
- setFrame(nextFrame);
37
- }
38
- if (!insets || nextInsets.bottom !== insets.bottom || nextInsets.left !== insets.left || nextInsets.right !== insets.right || nextInsets.top !== insets.top) {
39
- setInsets(nextInsets);
40
- }
41
- }, [frame, insets]);
42
- return /*#__PURE__*/React.createElement(NativeSafeAreaProvider, {
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
+ } else {
46
+ return curFrame;
47
+ }
48
+ });
49
+ setInsets(curInsets => {
50
+ if (!curInsets || nextInsets.bottom !== curInsets.bottom || nextInsets.left !== curInsets.left || nextInsets.right !== curInsets.right || nextInsets.top !== curInsets.top) {
51
+ return nextInsets;
52
+ } else {
53
+ return curInsets;
54
+ }
55
+ });
56
+ }, []);
57
+ return /*#__PURE__*/_jsx(NativeSafeAreaProvider, {
43
58
  style: [styles.fill, style],
44
- onInsetsChange: onInsetsChange
45
- }, insets != null ? /*#__PURE__*/React.createElement(SafeAreaFrameContext.Provider, {
46
- value: frame
47
- }, /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Provider, {
48
- value: insets
49
- }, children)) : null);
59
+ onInsetsChange: onInsetsChange,
60
+ ...others,
61
+ children: insets != null ? /*#__PURE__*/_jsx(SafeAreaFrameContext.Provider, {
62
+ value: frame,
63
+ children: /*#__PURE__*/_jsx(SafeAreaInsetsContext.Provider, {
64
+ value: insets,
65
+ children: children
66
+ })
67
+ }) : null
68
+ });
50
69
  }
51
70
  const styles = StyleSheet.create({
52
71
  fill: {
@@ -59,25 +78,30 @@ function useParentSafeAreaInsets() {
59
78
  function useParentSafeAreaFrame() {
60
79
  return React.useContext(SafeAreaFrameContext);
61
80
  }
81
+ const NO_INSETS_ERROR = 'No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.';
62
82
  export function useSafeAreaInsets() {
63
- const safeArea = React.useContext(SafeAreaInsetsContext);
64
- if (safeArea == null) {
65
- throw new Error('No safe area insets value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.');
83
+ const insets = React.useContext(SafeAreaInsetsContext);
84
+ if (insets == null) {
85
+ throw new Error(NO_INSETS_ERROR);
66
86
  }
67
- return safeArea;
87
+ return insets;
68
88
  }
69
89
  export function useSafeAreaFrame() {
70
90
  const frame = React.useContext(SafeAreaFrameContext);
71
91
  if (frame == null) {
72
- throw new Error('No safe area frame value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.');
92
+ throw new Error(NO_INSETS_ERROR);
73
93
  }
74
94
  return frame;
75
95
  }
76
96
  export function withSafeAreaInsets(WrappedComponent) {
77
- return /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SafeAreaConsumer, null, insets => /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, props, {
78
- insets: insets,
79
- ref: ref
80
- }))));
97
+ return /*#__PURE__*/React.forwardRef((props, ref) => {
98
+ const insets = useSafeAreaInsets();
99
+ return /*#__PURE__*/_jsx(WrappedComponent, {
100
+ ...props,
101
+ insets: insets,
102
+ ref: ref
103
+ });
104
+ });
81
105
  }
82
106
 
83
107
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["React","Dimensions","StyleSheet","NativeSafeAreaProvider","SafeAreaInsetsContext","createContext","displayName","SafeAreaFrameContext","SafeAreaProvider","children","initialMetrics","initialSafeAreaInsets","style","_ref","_ref2","_initialMetrics$inset","_ref3","_initialMetrics$frame","parentInsets","useParentSafeAreaInsets","parentFrame","useParentSafeAreaFrame","insets","setInsets","useState","frame","setFrame","x","y","width","get","height","onInsetsChange","useCallback","event","nativeEvent","nextFrame","nextInsets","bottom","left","right","top","createElement","styles","fill","Provider","value","create","flex","useContext","useSafeAreaInsets","safeArea","Error","useSafeAreaFrame","withSafeAreaInsets","WrappedComponent","forwardRef","props","ref","SafeAreaConsumer","_extends","useSafeArea","Consumer","SafeAreaContext"],"sources":["SafeAreaContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Dimensions, StyleProp, StyleSheet, ViewStyle } from 'react-native';\nimport NativeSafeAreaProvider from './NativeSafeAreaProvider';\nimport { EdgeInsets, InsetChangedEvent, Metrics, Rect } from './SafeArea.types';\n\nexport const SafeAreaInsetsContext = React.createContext<EdgeInsets | null>(\n null,\n);\nSafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';\n\nexport const SafeAreaFrameContext = React.createContext<Rect | null>(null);\nSafeAreaFrameContext.displayName = 'SafeAreaFrameContext';\n\nexport interface SafeAreaViewProps {\n children?: React.ReactNode;\n initialMetrics?: Metrics | null;\n /**\n * @deprecated\n */\n initialSafeAreaInsets?: EdgeInsets | null;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function SafeAreaProvider({\n children,\n initialMetrics,\n initialSafeAreaInsets,\n style,\n}: SafeAreaViewProps) {\n const parentInsets = useParentSafeAreaInsets();\n const parentFrame = useParentSafeAreaFrame();\n const [insets, setInsets] = React.useState<EdgeInsets | null>(\n initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? null,\n );\n const [frame, setFrame] = React.useState<Rect>(\n initialMetrics?.frame ??\n parentFrame ?? {\n // Backwards compat so we render anyway if we don't have frame.\n x: 0,\n y: 0,\n width: Dimensions.get('window').width,\n height: Dimensions.get('window').height,\n },\n );\n const onInsetsChange = React.useCallback(\n (event: InsetChangedEvent) => {\n const {\n nativeEvent: { frame: nextFrame, insets: nextInsets },\n } = event;\n\n if (\n // Backwards compat with old native code that won't send frame.\n nextFrame &&\n (nextFrame.height !== frame.height ||\n nextFrame.width !== frame.width ||\n nextFrame.x !== frame.x ||\n nextFrame.y !== frame.y)\n ) {\n setFrame(nextFrame);\n }\n\n if (\n !insets ||\n nextInsets.bottom !== insets.bottom ||\n nextInsets.left !== insets.left ||\n nextInsets.right !== insets.right ||\n nextInsets.top !== insets.top\n ) {\n setInsets(nextInsets);\n }\n },\n [frame, insets],\n );\n\n return (\n <NativeSafeAreaProvider\n style={[styles.fill, style]}\n onInsetsChange={onInsetsChange}\n >\n {insets != null ? (\n <SafeAreaFrameContext.Provider value={frame}>\n <SafeAreaInsetsContext.Provider value={insets}>\n {children}\n </SafeAreaInsetsContext.Provider>\n </SafeAreaFrameContext.Provider>\n ) : null}\n </NativeSafeAreaProvider>\n );\n}\n\nconst styles = StyleSheet.create({\n fill: { flex: 1 },\n});\n\nfunction useParentSafeAreaInsets(): EdgeInsets | null {\n return React.useContext(SafeAreaInsetsContext);\n}\n\nfunction useParentSafeAreaFrame(): Rect | null {\n return React.useContext(SafeAreaFrameContext);\n}\n\nexport function useSafeAreaInsets(): EdgeInsets {\n const safeArea = React.useContext(SafeAreaInsetsContext);\n if (safeArea == null) {\n throw new Error(\n 'No safe area insets value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.',\n );\n }\n return safeArea;\n}\n\nexport function useSafeAreaFrame(): Rect {\n const frame = React.useContext(SafeAreaFrameContext);\n if (frame == null) {\n throw new Error(\n 'No safe area frame value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.',\n );\n }\n return frame;\n}\n\nexport function withSafeAreaInsets<T>(\n WrappedComponent: React.ComponentType<T>,\n) {\n return React.forwardRef((props: T, ref: React.Ref<T>) => (\n <SafeAreaConsumer>\n {(insets) => <WrappedComponent {...props} insets={insets} ref={ref} />}\n </SafeAreaConsumer>\n ));\n}\n\n/**\n * @deprecated\n */\nexport function useSafeArea(): EdgeInsets {\n return useSafeAreaInsets();\n}\n\n/**\n * @deprecated\n */\nexport const SafeAreaConsumer = SafeAreaInsetsContext.Consumer;\n\n/**\n * @deprecated\n */\nexport const SafeAreaContext = SafeAreaInsetsContext;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Dimensions","StyleSheet","NativeSafeAreaProvider","jsx","_jsx","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","styles","fill","Provider","value","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":[]}
@@ -1,74 +1,43 @@
1
- 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); }
2
- import * as React from 'react';
3
- import { View, StyleSheet } from 'react-native';
4
- import { useSafeAreaInsets } from './SafeAreaContext';
5
- // prettier-ignore
6
- const TOP = 0b1000,
7
- RIGHT = 0b0100,
8
- BOTTOM = 0b0010,
9
- LEFT = 0b0001,
10
- ALL = 0b1111;
11
-
12
- /* eslint-disable no-bitwise */
1
+ "use strict";
13
2
 
14
- const edgeBitmaskMap = {
15
- top: TOP,
16
- right: RIGHT,
17
- bottom: BOTTOM,
18
- left: LEFT
3
+ import * as React from 'react';
4
+ import NativeSafeAreaView from './specs/NativeSafeAreaView';
5
+ import { useMemo } from 'react';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const defaultEdges = {
8
+ top: 'additive',
9
+ left: 'additive',
10
+ bottom: 'additive',
11
+ right: 'additive'
19
12
  };
20
- export function SafeAreaView({
21
- style = {},
22
- mode,
13
+ export const SafeAreaView = /*#__PURE__*/React.forwardRef(({
23
14
  edges,
24
- ...rest
25
- }) {
26
- const insets = useSafeAreaInsets();
27
- const edgeBitmask = edges != null ? edges.reduce((accum, edge) => accum | edgeBitmaskMap[edge], 0) : ALL;
28
- const appliedStyle = React.useMemo(() => {
29
- const insetTop = edgeBitmask & TOP ? insets.top : 0;
30
- const insetRight = edgeBitmask & RIGHT ? insets.right : 0;
31
- const insetBottom = edgeBitmask & BOTTOM ? insets.bottom : 0;
32
- const insetLeft = edgeBitmask & LEFT ? insets.left : 0;
33
- const flatStyle = StyleSheet.flatten(style);
34
- if (mode === 'margin') {
35
- const {
36
- margin = 0,
37
- marginVertical = margin,
38
- marginHorizontal = margin,
39
- marginTop = marginVertical,
40
- marginRight = marginHorizontal,
41
- marginBottom = marginVertical,
42
- marginLeft = marginHorizontal
43
- } = flatStyle;
44
- const marginStyle = {
45
- marginTop: marginTop + insetTop,
46
- marginRight: marginRight + insetRight,
47
- marginBottom: marginBottom + insetBottom,
48
- marginLeft: marginLeft + insetLeft
49
- };
50
- return [style, marginStyle];
51
- } else {
52
- const {
53
- padding = 0,
54
- paddingVertical = padding,
55
- paddingHorizontal = padding,
56
- paddingTop = paddingVertical,
57
- paddingRight = paddingHorizontal,
58
- paddingBottom = paddingVertical,
59
- paddingLeft = paddingHorizontal
60
- } = flatStyle;
61
- const paddingStyle = {
62
- paddingTop: paddingTop + insetTop,
63
- paddingRight: paddingRight + insetRight,
64
- paddingBottom: paddingBottom + insetBottom,
65
- paddingLeft: paddingLeft + insetLeft
66
- };
67
- return [style, paddingStyle];
15
+ ...props
16
+ }, ref) => {
17
+ const nativeEdges = useMemo(() => {
18
+ if (edges == null) {
19
+ return defaultEdges;
68
20
  }
69
- }, [style, insets, mode, edgeBitmask]);
70
- return /*#__PURE__*/React.createElement(View, _extends({
71
- style: appliedStyle
72
- }, rest));
73
- }
21
+ const edgesObj = Array.isArray(edges) ? edges.reduce((acc, edge) => {
22
+ acc[edge] = 'additive';
23
+ return acc;
24
+ }, {}) :
25
+ // ts has trouble with refining readonly arrays.
26
+ edges;
27
+
28
+ // make sure that we always pass all edges, required for fabric
29
+ const requiredEdges = {
30
+ top: edgesObj.top ?? 'off',
31
+ right: edgesObj.right ?? 'off',
32
+ bottom: edgesObj.bottom ?? 'off',
33
+ left: edgesObj.left ?? 'off'
34
+ };
35
+ return requiredEdges;
36
+ }, [edges]);
37
+ return /*#__PURE__*/_jsx(NativeSafeAreaView, {
38
+ ...props,
39
+ edges: nativeEdges,
40
+ ref: ref
41
+ });
42
+ });
74
43
  //# sourceMappingURL=SafeAreaView.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","useSafeAreaInsets","TOP","RIGHT","BOTTOM","LEFT","ALL","edgeBitmaskMap","top","right","bottom","left","SafeAreaView","style","mode","edges","rest","insets","edgeBitmask","reduce","accum","edge","appliedStyle","useMemo","insetTop","insetRight","insetBottom","insetLeft","flatStyle","flatten","margin","marginVertical","marginHorizontal","marginTop","marginRight","marginBottom","marginLeft","marginStyle","padding","paddingVertical","paddingHorizontal","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingStyle","createElement","_extends"],"sources":["SafeAreaView.tsx"],"sourcesContent":["import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { useSafeAreaInsets } from './SafeAreaContext';\nimport { Edge, NativeSafeAreaViewProps } from './SafeArea.types';\n\n// prettier-ignore\nconst TOP = 0b1000,\n RIGHT = 0b0100,\n BOTTOM = 0b0010,\n LEFT = 0b0001,\n ALL = 0b1111;\n\n/* eslint-disable no-bitwise */\n\nconst edgeBitmaskMap: Record<Edge, number> = {\n top: TOP,\n right: RIGHT,\n bottom: BOTTOM,\n left: LEFT,\n};\n\nexport function SafeAreaView({\n style = {},\n mode,\n edges,\n ...rest\n }: NativeSafeAreaViewProps) {\n const insets = useSafeAreaInsets();\n\n const edgeBitmask =\n edges != null\n ? edges.reduce((accum, edge) => accum | edgeBitmaskMap[edge], 0)\n : ALL;\n\n const appliedStyle = React.useMemo(() => {\n const insetTop = edgeBitmask & TOP ? insets.top : 0;\n const insetRight = edgeBitmask & RIGHT ? insets.right : 0;\n const insetBottom = edgeBitmask & BOTTOM ? insets.bottom : 0;\n const insetLeft = edgeBitmask & LEFT ? insets.left : 0;\n\n const flatStyle = StyleSheet.flatten(style) as Record<string, number>;\n\n if (mode === 'margin') {\n const {\n margin = 0,\n marginVertical = margin,\n marginHorizontal = margin,\n marginTop = marginVertical,\n marginRight = marginHorizontal,\n marginBottom = marginVertical,\n marginLeft = marginHorizontal,\n } = flatStyle;\n\n const marginStyle = {\n marginTop: marginTop + insetTop,\n marginRight: marginRight + insetRight,\n marginBottom: marginBottom + insetBottom,\n marginLeft: marginLeft + insetLeft,\n };\n\n return [style, marginStyle];\n } else {\n const {\n padding = 0,\n paddingVertical = padding,\n paddingHorizontal = padding,\n paddingTop = paddingVertical,\n paddingRight = paddingHorizontal,\n paddingBottom = paddingVertical,\n paddingLeft = paddingHorizontal,\n } = flatStyle;\n\n const paddingStyle = {\n paddingTop: paddingTop + insetTop,\n paddingRight: paddingRight + insetRight,\n paddingBottom: paddingBottom + insetBottom,\n paddingLeft: paddingLeft + insetLeft,\n };\n\n return [style, paddingStyle];\n }\n }, [style, insets, mode, edgeBitmask]);\n\n return <View style={appliedStyle} {...rest} />;\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","NativeSafeAreaView","useMemo","jsx","_jsx","defaultEdges","top","left","bottom","right","SafeAreaView","forwardRef","edges","props","ref","nativeEdges","edgesObj","Array","isArray","reduce","acc","edge","requiredEdges"],"sourceRoot":"../../src","sources":["SafeAreaView.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAQ9B,OAAOC,kBAAkB,MAAM,4BAA4B;AAC3D,SAASC,OAAO,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhC,MAAMC,YAAoC,GAAG;EAC3CC,GAAG,EAAE,UAAU;EACfC,IAAI,EAAE,UAAU;EAChBC,MAAM,EAAE,UAAU;EAClBC,KAAK,EAAE;AACT,CAAC;AAID,OAAO,MAAMC,YAAY,gBAAGV,KAAK,CAACW,UAAU,CAG1C,CAAC;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC9B,MAAMC,WAAW,GAAGb,OAAO,CAAC,MAAM;IAChC,IAAIU,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,oBAAOR,IAAA,CAACH,kBAAkB;IAAA,GAAKY,KAAK;IAAED,KAAK,EAAEG,WAAY;IAACD,GAAG,EAAEA;EAAI,CAAE,CAAC;AACxE,CAAC,CAAC","ignoreList":[]}
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+
1
3
  import { View } from 'react-native';
2
4
  export const SafeAreaView = View;
3
5
  //# sourceMappingURL=SafeAreaView.kepler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["View","SafeAreaView"],"sources":["SafeAreaView.kepler.tsx"],"sourcesContent":["import { View } from 'react-native';\n\nexport const SafeAreaView = View;"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,OAAO,MAAMC,YAAY,GAAGD,IAAI","ignoreList":[]}
1
+ {"version":3,"names":["View","SafeAreaView"],"sourceRoot":"../../src","sources":["SafeAreaView.kepler.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,OAAO,MAAMC,YAAY,GAAGD,IAAI","ignoreList":[]}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ import * as React from 'react';
4
+ import { StyleSheet, View } from 'react-native';
5
+ import { useSafeAreaInsets } from './SafeAreaContext';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const defaultEdges = {
8
+ top: 'additive',
9
+ left: 'additive',
10
+ bottom: 'additive',
11
+ right: 'additive'
12
+ };
13
+ function getEdgeValue(inset, current, mode) {
14
+ switch (mode) {
15
+ case 'off':
16
+ return current;
17
+ case 'maximum':
18
+ return Math.max(current, inset);
19
+ case 'additive':
20
+ default:
21
+ return current + inset;
22
+ }
23
+ }
24
+ export const SafeAreaView = /*#__PURE__*/React.forwardRef(({
25
+ style = {},
26
+ mode,
27
+ edges,
28
+ ...rest
29
+ }, ref) => {
30
+ const insets = useSafeAreaInsets();
31
+ const edgesRecord = React.useMemo(() => {
32
+ if (edges == null) {
33
+ return defaultEdges;
34
+ }
35
+ return Array.isArray(edges) ? edges.reduce((acc, edge) => {
36
+ acc[edge] = 'additive';
37
+ return acc;
38
+ }, {}) :
39
+ // ts has trouble with refining readonly arrays.
40
+ edges;
41
+ }, [edges]);
42
+ const appliedStyle = React.useMemo(() => {
43
+ const flatStyle = StyleSheet.flatten(style);
44
+ if (mode === 'margin') {
45
+ const {
46
+ margin = 0,
47
+ marginVertical = margin,
48
+ marginHorizontal = margin,
49
+ marginTop = marginVertical,
50
+ marginRight = marginHorizontal,
51
+ marginBottom = marginVertical,
52
+ marginLeft = marginHorizontal
53
+ } = flatStyle;
54
+ const marginStyle = {
55
+ marginTop: getEdgeValue(insets.top, marginTop, edgesRecord.top),
56
+ marginRight: getEdgeValue(insets.right, marginRight, edgesRecord.right),
57
+ marginBottom: getEdgeValue(insets.bottom, marginBottom, edgesRecord.bottom),
58
+ marginLeft: getEdgeValue(insets.left, marginLeft, edgesRecord.left)
59
+ };
60
+ return [style, marginStyle];
61
+ } else {
62
+ const {
63
+ padding = 0,
64
+ paddingVertical = padding,
65
+ paddingHorizontal = padding,
66
+ paddingTop = paddingVertical,
67
+ paddingRight = paddingHorizontal,
68
+ paddingBottom = paddingVertical,
69
+ paddingLeft = paddingHorizontal
70
+ } = flatStyle;
71
+ const paddingStyle = {
72
+ paddingTop: getEdgeValue(insets.top, paddingTop, edgesRecord.top),
73
+ paddingRight: getEdgeValue(insets.right, paddingRight, edgesRecord.right),
74
+ paddingBottom: getEdgeValue(insets.bottom, paddingBottom, edgesRecord.bottom),
75
+ paddingLeft: getEdgeValue(insets.left, paddingLeft, edgesRecord.left)
76
+ };
77
+ return [style, paddingStyle];
78
+ }
79
+ }, [edgesRecord.bottom, edgesRecord.left, edgesRecord.right, edgesRecord.top, insets.bottom, insets.left, insets.right, insets.top, mode, style]);
80
+ return /*#__PURE__*/_jsx(View, {
81
+ style: appliedStyle,
82
+ ...rest,
83
+ ref: ref
84
+ });
85
+ });
86
+ //# sourceMappingURL=SafeAreaView.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","useSafeAreaInsets","jsx","_jsx","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"],"sourceRoot":"../../src","sources":["SafeAreaView.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,5 @@
1
+ "use strict";
2
+
1
3
  import { View } from 'react-native';
2
4
  export const SafeAreaView = View;
3
5
  //# sourceMappingURL=SafeAreaView.windows.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["View","SafeAreaView"],"sources":["SafeAreaView.windows.tsx"],"sourcesContent":["import { View } from 'react-native';\n\nexport const SafeAreaView = View;\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,OAAO,MAAMC,YAAY,GAAGD,IAAI","ignoreList":[]}
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":[]}
@@ -1,3 +1,6 @@
1
+ "use strict";
2
+ 'use client';
3
+
1
4
  export * from './SafeAreaContext';
2
5
  export * from './SafeAreaView';
3
6
  export * from './InitialWindow';
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["export * from './SafeAreaContext';\nexport * from './SafeAreaView';\nexport * from './InitialWindow';\nexport * from './SafeArea.types';\n"],"mappings":"AAAA,cAAc,mBAAmB;AACjC,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,kBAAkB","ignoreList":[]}
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":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export default TurboModuleRegistry.get('RNCSafeAreaContext');
5
+ //# sourceMappingURL=NativeSafeAreaContext.js.map
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
4
+ export default codegenNativeComponent('RNCSafeAreaProvider');
5
+ //# sourceMappingURL=NativeSafeAreaProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["codegenNativeComponent"],"sourceRoot":"../../../src","sources":["specs/NativeSafeAreaProvider.ts"],"mappings":";;AAIA,OAAOA,sBAAsB,MAAM,yDAAyD;AAsB5F,eAAeA,sBAAsB,CACnC,qBACF,CAAC","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
4
+ export default codegenNativeComponent('RNCSafeAreaView', {
5
+ interfaceOnly: true
6
+ });
7
+ //# sourceMappingURL=NativeSafeAreaView.js.map
@@ -0,0 +1 @@
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":[]}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import type { NativeSafeAreaProviderProps } from './SafeArea.types';
3
+ export declare function CompatNativeSafeAreaProvider({ children, style, onInsetsChange, }: NativeSafeAreaProviderProps): React.JSX.Element;
4
+ //# sourceMappingURL=CompatNativeSafeAreaProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompatNativeSafeAreaProvider.d.ts","sourceRoot":"","sources":["../../src/CompatNativeSafeAreaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAEpE,wBAAgB,4BAA4B,CAAC,EAC3C,QAAQ,EACR,KAAK,EACL,cAAc,GACf,EAAE,2BAA2B,qBAmB7B"}
@@ -1,6 +1,7 @@
1
- import { EdgeInsets, Metrics } from './SafeArea.types';
1
+ import type { EdgeInsets, Metrics } from './SafeArea.types';
2
2
  export declare const initialWindowMetrics: Metrics | null;
3
3
  /**
4
4
  * @deprecated
5
5
  */
6
6
  export declare const initialWindowSafeAreaInsets: EdgeInsets | null;
7
+ //# sourceMappingURL=InitialWindow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitialWindow.d.ts","sourceRoot":"","sources":["../../src/InitialWindow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE5D,eAAO,MAAM,oBAAoB,EAAE,OAAO,GAAG,IAAW,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,UAAU,GAAG,IAAW,CAAC"}
@@ -4,3 +4,4 @@ export declare const initialWindowMetrics: Metrics | null;
4
4
  * @deprecated
5
5
  */
6
6
  export declare const initialWindowSafeAreaInsets: import("./SafeArea.types").EdgeInsets | undefined;
7
+ //# sourceMappingURL=InitialWindow.kepler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitialWindow.kepler.d.ts","sourceRoot":"","sources":["../../src/InitialWindow.kepler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAK3C,eAAO,MAAM,oBAAoB,EAAW,OAAO,GAAG,IAAI,CAAC;AAC3D;;GAEG;AACH,eAAO,MAAM,2BAA2B,mDAA+B,CAAC"}
@@ -1,6 +1,7 @@
1
- import { Metrics } from './SafeArea.types';
1
+ import type { Metrics } from './SafeArea.types';
2
2
  export declare const initialWindowMetrics: Metrics | null;
3
3
  /**
4
4
  * @deprecated
5
5
  */
6
6
  export declare const initialWindowSafeAreaInsets: import("./SafeArea.types").EdgeInsets | undefined;
7
+ //# sourceMappingURL=InitialWindow.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitialWindow.native.d.ts","sourceRoot":"","sources":["../../src/InitialWindow.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD,eAAO,MAAM,oBAAoB,EACI,OAAO,GAAG,IAAI,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,2BAA2B,mDAA+B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import NativeSafeAreaProvider from './specs/NativeSafeAreaProvider';
2
+ export { NativeSafeAreaProvider };
3
+ //# sourceMappingURL=NativeSafeAreaProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSafeAreaProvider.d.ts","sourceRoot":"","sources":["../../src/NativeSafeAreaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { CompatNativeSafeAreaProvider as NativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
2
+ //# sourceMappingURL=NativeSafeAreaProvider.kepler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSafeAreaProvider.kepler.d.ts","sourceRoot":"","sources":["../../src/NativeSafeAreaProvider.kepler.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import type { NativeSafeAreaProviderProps } from './SafeArea.types';
3
+ export declare function NativeSafeAreaProvider({ children, style, onInsetsChange, }: NativeSafeAreaProviderProps): React.JSX.Element;
4
+ //# sourceMappingURL=NativeSafeAreaProvider.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSafeAreaProvider.web.d.ts","sourceRoot":"","sources":["../../src/NativeSafeAreaProvider.web.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAkBpE,wBAAgB,sBAAsB,CAAC,EACrC,QAAQ,EACR,KAAK,EACL,cAAc,GACf,EAAE,2BAA2B,qBAqC7B"}
@@ -0,0 +1,2 @@
1
+ export { CompatNativeSafeAreaProvider as NativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
2
+ //# sourceMappingURL=NativeSafeAreaProvider.windows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSafeAreaProvider.windows.d.ts","sourceRoot":"","sources":["../../src/NativeSafeAreaProvider.windows.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type * as React from 'react';
2
+ import type { NativeSyntheticEvent, ViewProps } from 'react-native';
3
+ import NativeSafeAreaView from './specs/NativeSafeAreaView';
4
+ export type Edge = 'top' | 'right' | 'bottom' | 'left';
5
+ export type EdgeMode = 'off' | 'additive' | 'maximum';
6
+ export type EdgeRecord = Partial<Record<Edge, EdgeMode>>;
7
+ export type Edges = readonly Edge[] | Readonly<EdgeRecord>;
8
+ export interface EdgeInsets {
9
+ top: number;
10
+ right: number;
11
+ bottom: number;
12
+ left: number;
13
+ }
14
+ export interface Rect {
15
+ x: number;
16
+ y: number;
17
+ width: number;
18
+ height: number;
19
+ }
20
+ export interface Metrics {
21
+ insets: EdgeInsets;
22
+ frame: Rect;
23
+ }
24
+ export type InsetChangedEvent = NativeSyntheticEvent<Metrics>;
25
+ export type InsetChangeNativeCallback = (event: InsetChangedEvent) => void;
26
+ export interface NativeSafeAreaProviderProps extends ViewProps {
27
+ children?: React.ReactNode;
28
+ onInsetsChange: InsetChangeNativeCallback;
29
+ }
30
+ export interface NativeSafeAreaViewProps extends ViewProps {
31
+ children?: React.ReactNode;
32
+ mode?: 'padding' | 'margin';
33
+ edges?: Edges;
34
+ }
35
+ export type NativeSafeAreaViewInstance = InstanceType<typeof NativeSafeAreaView>;
36
+ //# sourceMappingURL=SafeArea.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeArea.types.d.ts","sourceRoot":"","sources":["../../src/SafeArea.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAE5D,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AACvD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzD,MAAM,MAAM,KAAK,GAAG,SAAS,IAAI,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC;CACb;AAED,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE9D,MAAM,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAE3E,MAAM,WAAW,2BAA4B,SAAQ,SAAS;IAC5D,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,EAAE,yBAAyB,CAAC;CAC3C;AAED,MAAM,WAAW,uBAAwB,SAAQ,SAAS;IACxD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,0BAA0B,GAAG,YAAY,CACnD,OAAO,kBAAkB,CAC1B,CAAC"}