{"version":3,"file":"NativeSafeAreaProvider.js","names":[],"sources":["esm/safe-area-context/NativeSafeAreaProvider.js"],"sourcesContent":["import * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst CSSTransitions = {\n  WebkitTransition: \"webkitTransitionEnd\",\n  Transition: \"transitionEnd\",\n  MozTransition: \"transitionend\",\n  MSTransition: \"msTransitionEnd\",\n  OTransition: \"oTransitionEnd\"\n};\nfunction NativeSafeAreaProvider({\n  children,\n  style,\n  onInsetsChange\n}) {\n  React.useEffect(() => {\n    if (typeof document === \"undefined\") {\n      return;\n    }\n    const element = createContextElement();\n    document.body.appendChild(element);\n    const onEnd = () => {\n      const { paddingTop, paddingBottom, paddingLeft, paddingRight } = window.getComputedStyle(element);\n      const 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      const frame = {\n        x: 0,\n        y: 0,\n        width: document.documentElement.offsetWidth,\n        height: document.documentElement.offsetHeight\n      };\n      onInsetsChange({ nativeEvent: { insets, frame } });\n    };\n    element.addEventListener(getSupportedTransitionEvent(), onEnd);\n    onEnd();\n    return () => {\n      document.body.removeChild(element);\n      element.removeEventListener(getSupportedTransitionEvent(), onEnd);\n    };\n  }, [onInsetsChange]);\n  if (style) {\n    const styleValue = style;\n    const styleValues = Array.isArray(styleValue) ? styleValue.flat(Number.POSITIVE_INFINITY) : [styleValue];\n    const flattenedStyle = styleValues.reduce(\n      (result, value) => value && typeof value === \"object\" ? Object.assign(result, value) : result,\n      {}\n    );\n    return /* @__PURE__ */ jsx(\"div\", { style: flattenedStyle, children });\n  }\n  return children;\n}\nlet _supportedTransitionEvent = null;\nfunction getSupportedTransitionEvent() {\n  if (_supportedTransitionEvent != null) {\n    return _supportedTransitionEvent;\n  }\n  const element = document.createElement(\"invalidtype\");\n  _supportedTransitionEvent = CSSTransitions.Transition;\n  for (const key in CSSTransitions) {\n    if (element.style[key] !== void 0) {\n      _supportedTransitionEvent = CSSTransitions[key];\n      break;\n    }\n  }\n  return _supportedTransitionEvent;\n}\nlet _supportedEnv = null;\nfunction getSupportedEnv() {\n  if (_supportedEnv !== null) {\n    return _supportedEnv;\n  }\n  const { 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  const element = document.createElement(\"div\");\n  const { 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":";;;;AAEA,MAAM,iBAAiB;CACrB,kBAAkB;CAClB,YAAY;CACZ,eAAe;CACf,cAAc;CACd,aAAa;AACf;AACA,SAAS,uBAAuB,EAC9B,UACA,OACA,kBACC;CACD,MAAM,gBAAgB;EACpB,IAAI,OAAO,aAAa,aAAa;GACnC;EACF;EACA,MAAM,UAAU,qBAAqB;EACrC,SAAS,KAAK,YAAY,OAAO;EACjC,MAAM,cAAc;GAClB,MAAM,EAAE,YAAY,eAAe,aAAa,iBAAiB,OAAO,iBAAiB,OAAO;GAChG,MAAM,SAAS;IACb,KAAK,aAAa,OAAO,SAAS,YAAY,EAAE,IAAI;IACpD,QAAQ,gBAAgB,OAAO,SAAS,eAAe,EAAE,IAAI;IAC7D,MAAM,cAAc,OAAO,SAAS,aAAa,EAAE,IAAI;IACvD,OAAO,eAAe,OAAO,SAAS,cAAc,EAAE,IAAI;GAC5D;GACA,MAAM,QAAQ;IACZ,GAAG;IACH,GAAG;IACH,OAAO,SAAS,gBAAgB;IAChC,QAAQ,SAAS,gBAAgB;GACnC;GACA,eAAe,EAAE,aAAa;IAAE;IAAQ;GAAM,EAAE,CAAC;EACnD;EACA,QAAQ,iBAAiB,4BAA4B,GAAG,KAAK;EAC7D,MAAM;EACN,aAAa;GACX,SAAS,KAAK,YAAY,OAAO;GACjC,QAAQ,oBAAoB,4BAA4B,GAAG,KAAK;EAClE;CACF,GAAG,CAAC,cAAc,CAAC;CACnB,IAAI,OAAO;EACT,MAAM,aAAa;EACnB,MAAM,cAAc,MAAM,QAAQ,UAAU,IAAI,WAAW,KAAK,OAAO,iBAAiB,IAAI,CAAC,UAAU;EACvG,MAAM,iBAAiB,YAAY,QAChC,QAAQ,UAAU,SAAS,OAAO,UAAU,WAAW,OAAO,OAAO,QAAQ,KAAK,IAAI,QACvF,CAAC,CACH;EACA,OAAuB,oBAAI,OAAO;GAAE,OAAO;GAAgB;EAAS,CAAC;CACvE;CACA,OAAO;AACT;AACA,IAAI,4BAA4B;AAChC,SAAS,8BAA8B;CACrC,IAAI,6BAA6B,MAAM;EACrC,OAAO;CACT;CACA,MAAM,UAAU,SAAS,cAAc,aAAa;CACpD,4BAA4B,eAAe;CAC3C,KAAK,MAAM,OAAO,gBAAgB;EAChC,IAAI,QAAQ,MAAM,SAAS,KAAK,GAAG;GACjC,4BAA4B,eAAe;GAC3C;EACF;CACF;CACA,OAAO;AACT;AACA,IAAI,gBAAgB;AACpB,SAAS,kBAAkB;CACzB,IAAI,kBAAkB,MAAM;EAC1B,OAAO;CACT;CACA,MAAM,EAAE,QAAQ;CAChB,IAAI,OAAO,IAAI,YAAY,IAAI,SAAS,oCAAoC,GAAG;EAC7E,gBAAgB;CAClB,OAAO;EACL,gBAAgB;CAClB;CACA,OAAO;AACT;AACA,SAAS,SAAS,MAAM;CACtB,OAAO,GAAG,gBAAgB,EAAE,mBAAmB,KAAK;AACtD;AACA,SAAS,uBAAuB;CAC9B,MAAM,UAAU,SAAS,cAAc,KAAK;CAC5C,MAAM,EAAE,UAAU;CAClB,MAAM,WAAW;CACjB,MAAM,OAAO;CACb,MAAM,MAAM;CACZ,MAAM,QAAQ;CACd,MAAM,SAAS;CACf,MAAM,SAAS;CACf,MAAM,WAAW;CACjB,MAAM,aAAa;CACnB,MAAM,qBAAqB;CAC3B,MAAM,qBAAqB;CAC3B,MAAM,kBAAkB;CACxB,MAAM,aAAa,SAAS,KAAK;CACjC,MAAM,gBAAgB,SAAS,QAAQ;CACvC,MAAM,cAAc,SAAS,MAAM;CACnC,MAAM,eAAe,SAAS,OAAO;CACrC,OAAO;AACT"}