{"version":3,"file":"react-shielded.cjs","sources":["../src/components/Logo.jsx","../src/hooks/useLockBodyScroll.js","../src/hooks/useMessage.js","../src/components/Modal.jsx","../src/components/Shielded.jsx"],"sourcesContent":["export const Logo = () => (\n  <svg\n    height=\"32\"\n    viewBox=\"0 0 192 192\"\n    width=\"32\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <title>Women’s Refuge</title>\n    <circle cx=\"96\" cy=\"96\" fill=\"#445e5c\" r=\"96\" />\n    <circle cx=\"96\" cy=\"95\" fill=\"#fff\" r=\"87\" />\n    <path d=\"m96 11a84 84 0 0 0 0 168z\" fill=\"#445e5c\" />\n    <g fill=\"none\" stroke=\"#fff\" strokeLinecap=\"round\" strokeWidth=\"3\">\n      <path\n        d=\"m96 50.5h-48a2.5 2.5 0 0 0 -2.5 2.5v70a2.5 2.5 0 0 0 2.5 2.5h48\"\n        strokeDasharray=\"6\"\n      />\n      <path\n        d=\"m99.76 135.5h-43a2 2 0 0 0 -1.76 1.11l-4 8a2 2 0 0 0 .08 1.94c.37.6 1 .95 3.71.95h44.79\"\n        strokeDasharray=\"7 6\"\n      />\n    </g>\n    <g fill=\"none\" stroke=\"#445e5c\">\n      <path d=\"m96 52h47a1 1 0 0 1 1 1v70a1 1 0 0 1 -1 1h-47\" strokeWidth=\"6\" />\n      <path\n        d=\"m96 135.5h39a2 2 0 0 1 1.79 1.11l4 8a2 2 0 0 1 -1.79 2.89h-43\"\n        strokeWidth=\"3\"\n      />\n      <path\n        d=\"m96 141h43m-37-5v5m8.5-5 .5 5m8-5 1 5m7-5 4 11\"\n        strokeWidth=\"2\"\n      />\n    </g>\n  </svg>\n);\n","import { useEffect } from \"react\";\n\nexport const useLockBodyScroll = () => {\n  useEffect(() => {\n    const originalOverflow = document.body.style.overflow;\n    document.body.style.overflow = \"hidden\";\n    return () => {\n      document.body.style.overflow = originalOverflow;\n    };\n  }, []);\n};\n","import { useEffect, useRef } from \"react\";\n\nexport const useMessage = (handler) => {\n  const handlerRef = useRef();\n  useEffect(() => {\n    handlerRef.current = handler;\n  });\n  useEffect(() => {\n    const listener = (event) => handlerRef.current?.(event);\n    window.addEventListener(\"message\", listener);\n    return () => window.removeEventListener(\"message\", listener);\n  }, []);\n};\n","import DocumentPortal from \"react-document-portal\";\nimport useKeypress from \"react-use-keypress\";\nimport { useLockBodyScroll } from \"../hooks/useLockBodyScroll\";\nimport { useMessage } from \"../hooks/useMessage\";\n\nexport const Modal = ({ onRequestClose }) => {\n  useLockBodyScroll();\n  useKeypress(\"Escape\", onRequestClose);\n  useMessage((event) => {\n    if (event.data === \"closeModal\") onRequestClose();\n  });\n  return (\n    <DocumentPortal>\n      <div\n        aria-modal=\"true\"\n        role=\"dialog\"\n        style={{\n          position: \"fixed\",\n          top: 0,\n          left: 0,\n          right: 0,\n          bottom: 0,\n          zIndex: 99999,\n          display: \"flex\",\n          alignItems: \"center\",\n          flexDirection: \"column\",\n          backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n          overflow: \"auto\",\n        }}\n      >\n        <iframe\n          aria-label=\"The Shielded Site\"\n          frameBorder=\"0\"\n          height=\"455\"\n          onLoad={(event) => event.target?.focus()}\n          sandbox=\"allow-forms allow-scripts allow-same-origin allow-popups\"\n          src=\"https://staticcdn.co.nz\"\n          style={{\n            maxHeight: \"100%\",\n            opacity: 0.98,\n          }}\n          width=\"310\"\n        />\n      </div>\n    </DocumentPortal>\n  );\n};\n","import { useRef, useState } from \"react\";\nimport { Logo } from \"./Logo\";\nimport { Modal } from \"./Modal\";\n\nexport const Shielded = () => {\n  const buttonRef = useRef(null);\n  const [isOpen, setOpen] = useState(false);\n  return (\n    <>\n      <button\n        aria-label=\"Women’s Refuge\"\n        onClick={() => setOpen(true)}\n        ref={buttonRef}\n        style={{\n          display: \"inline-block\",\n          margin: 0,\n          padding: 0,\n          border: \"none\",\n          appearance: \"none\",\n          background: \"none\",\n          cursor: \"pointer\",\n          opacity: isOpen ? 0 : 1,\n        }}\n        type=\"button\"\n      >\n        <Logo />\n      </button>\n      {isOpen && (\n        <Modal\n          onRequestClose={() => {\n            setOpen(false);\n            buttonRef.current?.focus();\n          }}\n        />\n      )}\n    </>\n  );\n};\n"],"names":["Logo","jsxs","jsx","useLockBodyScroll","useEffect","originalOverflow","useMessage","handler","handlerRef","useRef","listener","event","Modal","onRequestClose","useKeypress","DocumentPortal","Shielded","buttonRef","isOpen","setOpen","useState","Fragment"],"mappings":"wIAAaA,EAAO,IAClBC,EAAAA,KAAC,MAAA,CACC,OAAO,KACP,QAAQ,cACR,MAAM,KACN,MAAM,6BAEN,SAAA,CAAAC,EAAAA,IAAC,SAAM,SAAA,gBAAA,CAAc,EACrBA,EAAAA,IAAC,UAAO,GAAG,KAAK,GAAG,KAAK,KAAK,UAAU,EAAE,IAAA,CAAK,EAC9CA,EAAAA,IAAC,UAAO,GAAG,KAAK,GAAG,KAAK,KAAK,OAAO,EAAE,IAAA,CAAK,EAC3CA,EAAAA,IAAC,OAAA,CAAK,EAAE,4BAA4B,KAAK,UAAU,EACnDD,EAAAA,KAAC,KAAE,KAAK,OAAO,OAAO,OAAO,cAAc,QAAQ,YAAY,IAC7D,SAAA,CAAAC,EAAAA,IAAC,OAAA,CACC,EAAE,kEACF,gBAAgB,GAAA,CAAA,EAElBA,EAAAA,IAAC,OAAA,CACC,EAAE,0FACF,gBAAgB,KAAA,CAAA,CAClB,EACF,EACAD,EAAAA,KAAC,IAAA,CAAE,KAAK,OAAO,OAAO,UACpB,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAK,EAAE,gDAAgD,YAAY,IAAI,EACxEA,EAAAA,IAAC,OAAA,CACC,EAAE,gEACF,YAAY,GAAA,CAAA,EAEdA,EAAAA,IAAC,OAAA,CACC,EAAE,iDACF,YAAY,GAAA,CAAA,CACd,CAAA,CACF,CAAA,CAAA,CACF,EC9BWC,EAAoB,IAAM,CACrCC,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAmB,SAAS,KAAK,MAAM,SAC7C,gBAAS,KAAK,MAAM,SAAW,SACxB,IAAM,CACX,SAAS,KAAK,MAAM,SAAWA,CACjC,CACF,EAAG,CAAA,CAAE,CACP,ECRaC,EAAcC,GAAY,CACrC,MAAMC,EAAaC,EAAAA,OAAM,EACzBL,EAAAA,UAAU,IAAM,CACdI,EAAW,QAAUD,CACvB,CAAC,EACDH,EAAAA,UAAU,IAAM,CACd,MAAMM,EAAYC,GAAUH,EAAW,UAAUG,CAAK,EACtD,cAAO,iBAAiB,UAAWD,CAAQ,EACpC,IAAM,OAAO,oBAAoB,UAAWA,CAAQ,CAC7D,EAAG,CAAA,CAAE,CACP,ECPaE,EAAQ,CAAC,CAAE,eAAAC,MACtBV,EAAA,EACAW,EAAY,SAAUD,CAAc,EACpCP,EAAYK,GAAU,CAChBA,EAAM,OAAS,cAAcE,EAAA,CACnC,CAAC,QAEEE,EAAA,CACC,SAAAb,EAAAA,IAAC,MAAA,CACC,aAAW,OACX,KAAK,SACL,MAAO,CACL,SAAU,QACV,IAAK,EACL,KAAM,EACN,MAAO,EACP,OAAQ,EACR,OAAQ,MACR,QAAS,OACT,WAAY,SACZ,cAAe,SACf,gBAAiB,qBACjB,SAAU,MAAA,EAGZ,SAAAA,EAAAA,IAAC,SAAA,CACC,aAAW,oBACX,YAAY,IACZ,OAAO,MACP,OAASS,GAAUA,EAAM,QAAQ,MAAA,EACjC,QAAQ,2DACR,IAAI,0BACJ,MAAO,CACL,UAAW,OACX,QAAS,GAAA,EAEX,MAAM,KAAA,CAAA,CACR,CAAA,EAEJ,GCxCSK,EAAW,IAAM,CAC5B,MAAMC,EAAYR,EAAAA,OAAO,IAAI,EACvB,CAACS,EAAQC,CAAO,EAAIC,EAAAA,SAAS,EAAK,EACxC,OACEnB,EAAAA,KAAAoB,WAAA,CACE,SAAA,CAAAnB,EAAAA,IAAC,SAAA,CACC,aAAW,iBACX,QAAS,IAAMiB,EAAQ,EAAI,EAC3B,IAAKF,EACL,MAAO,CACL,QAAS,eACT,OAAQ,EACR,QAAS,EACT,OAAQ,OACR,WAAY,OACZ,WAAY,OACZ,OAAQ,UACR,QAASC,EAAS,EAAI,CAAA,EAExB,KAAK,SAEL,eAAClB,EAAA,CAAA,CAAK,CAAA,CAAA,EAEPkB,GACChB,EAAAA,IAACU,EAAA,CACC,eAAgB,IAAM,CACpBO,EAAQ,EAAK,EACbF,EAAU,SAAS,MAAA,CACrB,CAAA,CAAA,CACF,EAEJ,CAEJ"}