1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6344],{86344:function(e,t,n){n.r(t),n.d(t,{default:function(){return o}});var s=n(57437),i=n(2265),r=n(91472),a=n(15522);let l="pwa-promo-dismissed";function o(){let e=(0,r.Hk)(),t=function(){let[e,t]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let e=navigator.userAgent;t(!!(/iPad|iPhone|iPod/.test(e)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1))},[]),e}(),n=function(){let[e,t]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{t(/Android/i.test(navigator.userAgent))},[]),e}(),[o,c]=(0,i.useState)(!0),[u,d]=(0,i.useState)(null),[h,p]=(0,i.useState)(!1),m=function(e,t,n,s){let[r,a]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{if(t){a(!1);return}if(n||s&&e){a(!0);return}a(!1)},[t,n,s,e]),r}(u,e,t,n);(0,i.useEffect)(()=>{c("1"===sessionStorage.getItem(l))},[]),(0,i.useEffect)(()=>{let e=(0,a.C)();e&&d(e);let t=e=>{(0,a.M)(e),d(e)};return window.addEventListener("beforeinstallprompt",t),()=>window.removeEventListener("beforeinstallprompt",t)},[]);let x=async()=>{let e=null!=u?u:(0,a.C)();if(!e)return;let t=e.prompt();p(!0);try{await t,(0,a.M)(null),d(null)}finally{p(!1)}};return e||!m||o?null:(0,s.jsx)("section",{className:"fixed bottom-0 left-0 right-0 z-[1050] bg-primary/95 text-white border-t border-primary-dark/30 shadow-lg",role:"region","aria-label":"Install app",children:(0,s.jsxs)("div",{className:"container mx-auto px-4 py-3 flex flex-wrap items-center justify-between gap-3",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,s.jsx)("span",{className:"shrink-0 rounded-lg bg-white/20 p-1.5","aria-hidden":!0,children:(0,s.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z"})})}),(0,s.jsxs)("div",{className:"min-w-0",children:[(0,s.jsx)("p",{className:"font-semibold text-sm sm:text-base",children:"Get the PostboxMap app"}),(0,s.jsx)("p",{className:"text-white/90 text-xs sm:text-sm truncate",children:t?"Tap Share, then âAdd to Home Screenâ":u?"Install for quick access and offline use":"Add to Home Screen for the best experience"}),t&&(0,s.jsx)("a",{href:"/app#ios",className:"text-white/95 text-xs underline underline-offset-2 hover:text-white mt-0.5 inline-block",children:"Full iOS install steps"})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[u&&(0,s.jsx)("button",{type:"button",onClick:x,disabled:h,className:"min-h-[44px] px-4 py-2 rounded-lg bg-white text-primary font-semibold text-sm hover:bg-gray-100 disabled:opacity-70 touch-manipulation",children:h?"Installingâ¦":"Install"}),(0,s.jsx)("button",{type:"button",onClick:()=>{sessionStorage.setItem(l,"1"),c(!0)},className:"min-h-[44px] min-w-[44px] p-2 rounded-lg text-white/90 hover:bg-white/20 touch-manipulation","aria-label":"Dismiss",children:(0,s.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]})})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.