{"version":3,"file":"FloatingInvitation.DgoABkIt.mjs","names":["useState","useRef","useCallback"],"sources":["https:/framerusercontent.com/modules/4JHnIQ48ZZyznrUJ6ZEG/L1PyDFGTmVmJe3SR3ioL/FloatingInvitation.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect,useRef,useCallback}from\"react\";// @ts-ignore - Framer URL imports resolve at runtime in the published site.\nimport{resolveEndpoint,resolveEmail,buildMailto}from\"https://framer.com/m/StudioConfig-0Th4CG.js\";/**\n * Studio Mātcha — The Floating Invitation (one invitation system, sitewide)\n * ────────────────────────────────────────────────────────────────────────\n * Not a contact widget. The Studio Mātcha seal, made physical — resting in\n * the lower-right like a hand-stamped mark — that unfolds into a private\n * invitation. The quiet attentiveness of a tea master.\n *\n * PRODUCTION: the enquiry endpoint is resolved centrally via StudioConfig\n * (resolveEndpoint). Set the Cloudflare Worker URL once in StudioConfig.tsx;\n * this component (and every other enquiry surface) picks it up automatically.\n * A non-empty per-instance `endpoint` control still overrides it if needed.\n *\n * ⚠ BUGFIX (2026-07) — THE INVISIBLE DOOR.\n *   `.smi-panel` is always mounted and was hidden ONLY with opacity:0. An\n *   element at opacity 0 is invisible but still fully clickable. The panel is\n *   position:fixed, z-index:1460, 440px wide and up to 740px tall, anchored to\n *   the bottom-right of the VIEWPORT — so on every page carrying this\n *   component there was an invisible 440×740 rectangle in the lower-right\n *   swallowing every click that landed in it.\n *\n *   On /destinations this ate the right-hand half of the concierge desk: the\n *   \"menu\" and \"contact\" segments sat under the panel's footprint while\n *   \"hours\" and \"maps\" sat clear of its left edge. Nothing was wrong with the\n *   segmented control; it was being clicked through a closed dialog.\n *\n *   The scrim sibling was already written correctly (pointer-events:none, then\n *   auto when open). The seal has a pointerEvents guard. The panel — the\n *   largest of the three — was the one that was missed.\n *\n *   FIX: the closed panel takes no pointer events; the open panel takes them\n *   back. Two declarations. Opacity, transform, timing, easing and every\n *   visual property are untouched, so the invitation looks and moves exactly\n *   as before — it simply stops intercepting clicks it cannot receive.\n *\n * MOTION (refined + reviewed): insignia breathes on hover (1.035×/300ms);\n * the panel unfolds FROM the seal's true centre and folds back on close;\n * contents arrive a beat after the panel (two-tier stagger); weighted scroll;\n * opacity + transform only; reduced-motion respected; interruption-safe.\n *\n * HONEST SUCCESS (2026-07): success state now branches on HOW the submission\n * was delivered. When a real endpoint is configured, the panel confirms the\n * message arrived. When falling back to mailto, the panel honestly reports\n * that the draft has opened and asks the guest to send it — no false \"your\n * note has found its way to us\" when nothing has yet been received.\n */const M=\"'Geist Mono','SF Mono',ui-monospace,monospace\";const PAPER=\"rgb(246,244,238)\";const PAPER2=\"rgb(239,235,226)\";const INK=\"rgb(21,20,15)\";const SOFT=\"rgb(106,103,94)\";const FAINT=\"rgb(156,153,142)\";const BORDER=\"rgba(21,20,15,0.10)\";const BORDER2=\"rgba(21,20,15,0.06)\";const EASE=\"cubic-bezier(.16,1,.3,1)\";const sR=[[105,0,245,29],[70,29,315,29],[35,58,385,29],[35,87,385,29],[0,116,455,29],[0,145,350,29],[420,145,35,29],[0,174,280,29],[420,174,35,29],[0,203,105,29],[175,203,70,29],[315,203,70,29],[420,203,35,29],[0,232,105,29],[210,232,35,29],[420,232,35,29],[0,261,105,29],[210,261,35,29],[350,261,35,29],[420,261,35,29],[35,290,105,29],[455,290,105,29],[35,319,140,29],[420,319,70,29],[525,319,70,29],[70,348,70,29],[385,348,70,29],[560,348,35,29],[70,377,35,29],[350,377,70,29],[560,377,35,29],[70,406,35,29],[350,406,35,29],[420,406,70,29],[560,406,35,29],[35,435,70,29],[210,435,35,29],[350,435,70,29],[455,435,35,29],[525,435,70,29],[35,464,105,29],[210,464,140,29],[385,464,35,29],[455,464,105,29],[35,493,210,29],[385,493,35,29],[525,493,35,29],[35,522,210,29],[385,522,35,29],[525,522,35,29],[35,551,210,29],[385,551,35,29],[490,551,35,29]];function Seal({size=22,color=INK}){return /*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 595 580\",fill:color,\"aria-hidden\":\"true\",focusable:\"false\",style:{width:size,height:Math.round(size*580/595),display:\"block\",flexShrink:0},children:sR.map(([x,y,w,h],i)=>/*#__PURE__*/_jsx(\"rect\",{x:x,y:y,width:w,height:h},i))});}const NAME={k:\"name\",label:\"name\"};const EMAIL={k:\"email\",label:\"email\",type:\"email\"};const MSG={k:\"message\",label:\"message\",type:\"textarea\"};const CATEGORIES=[{id:\"workshops\",title:\"workshops & experiences\",blurb:\"tea experiences, educational visits, and group enquiries.\",fields:[NAME,EMAIL,{k:\"guests\",label:\"number of guests\",type:\"number\"},MSG]},{id:\"press\",title:\"press & editorial\",blurb:\"journalists, publications, interviews, and media requests.\",fields:[NAME,{k:\"publication\",label:\"publication\"},EMAIL,MSG]},{id:\"partnerships\",title:\"partnerships\",blurb:\"creative collaborations and brand opportunities.\",fields:[NAME,{k:\"organisation\",label:\"organisation\"},EMAIL,{k:\"message\",label:\"tell us more\",type:\"textarea\"}]},{id:\"growth\",title:\"a conversation about growth\",blurb:\"if you are thinking about where studio mātcha might go next, we would like to hear from you.\",fields:[NAME,{k:\"organisation\",label:\"organisation or context\"},EMAIL,{k:\"message\",label:\"what are you imagining?\",type:\"textarea\"}]},{id:\"else\",title:\"something else\",blurb:\"for everything that does not fit neatly into a category.\",fields:[NAME,EMAIL,MSG]}];const CSS=`\n.smi-root * { box-sizing: border-box; }\n\n.smi-seal {\n    position: fixed; z-index: 1400;\n    right: max(22px, env(safe-area-inset-right));\n    bottom: max(22px, calc(env(safe-area-inset-bottom) + 8px));\n    width: 48px; height: 48px; border-radius: 50%;\n    background: ${PAPER}; border: 1px solid ${BORDER};\n    display: flex; align-items: center; justify-content: center;\n    cursor: pointer; padding: 0;\n    opacity: 0; transform: translateY(10px) scale(0.96);\n    transition: opacity .9s ${EASE}, transform .9s ${EASE}, box-shadow .4s ease, background .4s ease;\n    box-shadow: 0 1px 3px rgba(21,20,15,0.06), 0 4px 12px rgba(21,20,15,0.04);\n    -webkit-tap-highlight-color: transparent;\n}\n.smi-seal.in { opacity: 1; transform: translateY(0) scale(1); }\n.smi-seal.hidden { opacity: 0; transform: scale(0.8); pointer-events: none; transition: opacity .32s ease, transform .32s ${EASE}; }\n.smi-seal:hover { background: #fff; box-shadow: 0 2px 8px rgba(21,20,15,0.08), 0 8px 24px rgba(21,20,15,0.10); }\n.smi-seal:focus-visible { outline: 1.5px solid ${INK}; outline-offset: 3px; }\n.smi-seal::after {\n    content: \"\"; position: absolute; inset: -5px; border-radius: 50%;\n    border: 1px solid rgba(21,20,15,0.08);\n    opacity: 0; transition: opacity .4s ease;\n}\n.smi-seal:hover::after { opacity: 1; }\n.smi-seal-mark {\n    display: flex; align-items: center; justify-content: center;\n    transform: scale(1);\n    transition: transform .30s cubic-bezier(.22,1,.36,1);\n}\n.smi-seal:hover .smi-seal-mark { transform: scale(1.035); }\n.smi-seal:active .smi-seal-mark { transform: scale(0.985); transition: transform .12s ease; }\n\n.smi-scrim {\n    position: fixed; inset: 0; z-index: 1450;\n    background: rgba(21,20,15,0);\n    backdrop-filter: blur(0px); -webkit-backdrop-filter: blur(0px);\n    transition: background .5s ease, backdrop-filter .5s ease;\n    pointer-events: none;\n}\n.smi-scrim.on { background: rgba(21,20,15,0.30); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); pointer-events: auto; }\n\n/* THE PANEL IS ALWAYS MOUNTED. opacity:0 hides it from the eye but NOT from\n   the cursor — a closed dialog must not be a hit target. it is 440px wide and\n   pinned to the viewport's lower-right, so without this it silently swallows\n   every click in that corner of every page it appears on. */\n.smi-panel {\n    position: fixed; z-index: 1460;\n    right: max(22px, env(safe-area-inset-right));\n    bottom: max(22px, env(safe-area-inset-bottom));\n    width: min(440px, calc(100vw - 44px));\n    max-height: min(86vh, 740px);\n    background: ${PAPER};\n    border: 1px solid ${BORDER};\n    border-radius: 14px;\n    box-shadow: 0 8px 32px rgba(21,20,15,0.10), 0 32px 80px rgba(21,20,15,0.14);\n    display: flex; flex-direction: column; overflow: hidden;\n    opacity: 0; transform: scale(0.965);\n    pointer-events: none;\n    transition: opacity .42s ${EASE}, transform .46s ${EASE};\n}\n.smi-panel.on { opacity: 1; transform: scale(1); pointer-events: auto; }\n@media (max-width: 560px) {\n    .smi-panel {\n        right: max(12px, env(safe-area-inset-right));\n        left: max(12px, env(safe-area-inset-left));\n        bottom: max(12px, env(safe-area-inset-bottom));\n        width: auto; max-height: 90vh; border-radius: 16px;\n    }\n}\n\n.smi-head {\n    display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;\n    padding: 26px 26px 20px;\n    border-bottom: 1px solid ${BORDER2};\n    flex-shrink: 0;\n}\n.smi-body {\n    padding: 24px 26px 28px; overflow-y: auto;\n    -webkit-overflow-scrolling: touch;\n    overscroll-behavior: contain;\n    min-height: 0; flex: 1 1 auto;\n    scrollbar-width: thin;\n    scrollbar-color: rgba(21,20,15,0.16) transparent;\n}\n.smi-body::-webkit-scrollbar { width: 7px; }\n.smi-body::-webkit-scrollbar-track { background: transparent; }\n.smi-body::-webkit-scrollbar-thumb { background: rgba(21,20,15,0.14); border-radius: 4px; border: 2px solid transparent; background-clip: padding-box; }\n.smi-body::-webkit-scrollbar-thumb:hover { background: rgba(21,20,15,0.26); background-clip: padding-box; }\n\n.smi-stagger { opacity: 0; transform: translateY(7px); transition: opacity .48s ${EASE}, transform .48s ${EASE}; }\n.smi-panel.ready .smi-stagger { opacity: 1; transform: translateY(0); }\n.smi-panel.ready .smi-stagger.s1 { transition-delay: .02s; }\n.smi-panel.ready .smi-stagger.s2 { transition-delay: .10s; }\n\n.smi-x {\n    background: none; border: none; cursor: pointer;\n    font-family: ${M}; font-size: 11px; letter-spacing: .18em; text-transform: lowercase;\n    color: ${FAINT}; padding: 6px; margin: -6px;\n    transition: color .2s ease; flex-shrink: 0;\n}\n.smi-x:hover { color: ${INK}; }\n\n.smi-card {\n    width: 100%; text-align: left;\n    background: none; border: 1px solid ${BORDER2};\n    border-radius: 10px; cursor: pointer;\n    padding: 16px 18px;\n    display: flex; flex-direction: column; gap: 6px;\n    transition: border-color .35s ${EASE}, background .35s ${EASE}, transform .35s ${EASE}, box-shadow .35s ${EASE};\n    font-family: ${M};\n}\n.smi-card:hover { border-color: rgba(21,20,15,0.18); background: ${PAPER2}; transform: translateY(-1px); box-shadow: 0 1px 2px rgba(21,20,15,0.03), 0 6px 18px rgba(21,20,15,0.045); }\n.smi-card:active { transform: translateY(0); transition: transform .12s ease; }\n.smi-card:focus-visible { outline: 1.5px solid ${INK}; outline-offset: 2px; }\n\n.smi-input, .smi-textarea {\n    width: 100%;\n    font-family: ${M}; font-weight: 300; font-size: 14px; letter-spacing: -.01em;\n    color: ${INK}; background: #fff;\n    border: 1px solid ${BORDER2}; border-radius: 9px;\n    padding: 12px 14px;\n    transition: border-color .25s ${EASE}, box-shadow .25s ${EASE};\n    -webkit-appearance: none; appearance: none;\n}\n.smi-input:focus, .smi-textarea:focus { outline: none; border-color: ${INK}; box-shadow: 0 0 0 3px rgba(21,20,15,0.05); }\n.smi-input.invalid, .smi-textarea.invalid { border-color: rgba(150,40,30,0.5); }\n.smi-textarea { resize: none; min-height: 104px; line-height: 1.65; }\n.smi-input::placeholder, .smi-textarea::placeholder { color: ${FAINT}; }\n\n.smi-submit {\n    width: 100%;\n    font-family: ${M}; font-weight: 400; font-size: 12px; letter-spacing: .14em; text-transform: lowercase;\n    color: ${PAPER}; background: ${INK};\n    border: none; border-radius: 9px; padding: 15px;\n    cursor: pointer;\n    transition: background .25s ease, opacity .25s ease, transform .2s ${EASE};\n}\n.smi-submit:hover:not(:disabled) { background: rgb(40,38,30); }\n.smi-submit:active:not(:disabled) { transform: translateY(0.5px); transition: transform .1s ease; }\n.smi-submit:disabled { opacity: .4; cursor: default; }\n\n.smi-back {\n    background: none; border: none; cursor: pointer;\n    font-family: ${M}; font-weight: 300; font-size: 11px; letter-spacing: .14em; text-transform: lowercase;\n    color: ${SOFT}; padding: 4px; margin: -4px;\n    transition: color .2s ease; align-self: flex-start;\n}\n.smi-back:hover { color: ${INK}; }\n\n/* honeypot — visually gone, off-screen, not announced. bots fill it; humans never see it. */\n.smi-hp { position: absolute; left: -9999px; top: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }\n\n@media (prefers-reduced-motion: reduce) {\n    .smi-seal, .smi-panel, .smi-scrim { transition: opacity .2s ease !important; transform: none !important; }\n    .smi-seal.hidden { transform: none !important; }\n    .smi-seal-mark { transition: none !important; transform: none !important; }\n    .smi-panel.ready .smi-stagger { transition: opacity .2s ease !important; transform: none !important; transition-delay: 0s !important; }\n    .smi-card { transition: border-color .2s ease, background .2s ease !important; transform: none !important; }\n}\n`;const lbl=c=>({fontFamily:M,fontWeight:300,fontSize:\"10.5px\",letterSpacing:\"0.16em\",textTransform:\"lowercase\",color:c,margin:0});export default function FloatingInvitation({endpoint=\"\",fallbackEmail=\"\",revealAfter=.85,settleDelay=1100}){const[mounted,setMounted]=useState(false);const[crossed,setCrossed]=useState(false);const[settled,setSettled]=useState(false);const[open,setOpen]=useState(false);const[ready,setReady]=useState(false);const[cat,setCat]=useState(null);const[values,setValues]=useState({});const[hp,setHp]=useState(\"\")// honeypot\n;const[sending,setSending]=useState(false);const[done,setDone]=useState(false);const[error,setError]=useState(null)// TRUE failure state\n;const[showInvalid,setShowInvalid]=useState(false);// tracks whether the last successful submission used the mailto fallback\n// rather than a real endpoint — controls which success message is shown.\nconst[sentViaMailto,setSentViaMailto]=useState(false);const[reduced,setReduced]=useState(false);const panelRef=useRef(null);const sealRef=useRef(null);const lastFocus=useRef(null);const settleTimer=useRef(null);const dissolveTimer=useRef(null);const readyTimer=useRef(null);const sendingRef=useRef(false)// hard guard against duplicate submits\n;useEffect(()=>{setMounted(true);setReduced(window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches);},[]);useEffect(()=>{const onScroll=()=>setCrossed(window.scrollY>window.innerHeight*revealAfter);window.addEventListener(\"scroll\",onScroll,{passive:true});onScroll();return()=>window.removeEventListener(\"scroll\",onScroll);},[revealAfter]);useEffect(()=>{if(crossed&&!settled&&settleTimer.current===null){settleTimer.current=window.setTimeout(()=>{setSettled(true);settleTimer.current=null;},reduced?200:settleDelay);}return()=>{if(settleTimer.current!==null&&!crossed){clearTimeout(settleTimer.current);settleTimer.current=null;}};},[crossed,settled,settleDelay,reduced]);const revealed=settled;const setOriginFromSeal=useCallback(()=>{const panel=panelRef.current,seal=sealRef.current;if(!panel||!seal)return;const p=panel.getBoundingClientRect();const s=seal.getBoundingClientRect();if(p.width===0||s.width===0)return;const ox=s.left+s.width/2-p.left;const oy=s.top+s.height/2-p.top;panel.style.transformOrigin=`${ox}px ${oy}px`;},[]);const openInvite=useCallback(()=>{lastFocus.current=document.activeElement;if(dissolveTimer.current!==null){clearTimeout(dissolveTimer.current);dissolveTimer.current=null;}setOpen(true);setDone(false);setError(null);},[]);useEffect(()=>{const h=()=>{setSettled(true);openInvite();};window.addEventListener(\"studio-matcha:invite\",h);return()=>window.removeEventListener(\"studio-matcha:invite\",h);},[openInvite]);useEffect(()=>{if(open){setOriginFromSeal();const r1=requestAnimationFrame(()=>{setOriginFromSeal();readyTimer.current=window.setTimeout(()=>setReady(true),reduced?0:80);});return()=>{cancelAnimationFrame(r1);if(readyTimer.current!==null){clearTimeout(readyTimer.current);readyTimer.current=null;}};}else{setReady(false);if(readyTimer.current!==null){clearTimeout(readyTimer.current);readyTimer.current=null;}}},[open,reduced,setOriginFromSeal]);useEffect(()=>{if(!open)return;const onResize=()=>setOriginFromSeal();window.addEventListener(\"resize\",onResize);window.addEventListener(\"orientationchange\",onResize);return()=>{window.removeEventListener(\"resize\",onResize);window.removeEventListener(\"orientationchange\",onResize);};},[open,setOriginFromSeal]);useEffect(()=>{if(open){const t=window.setTimeout(()=>panelRef.current?.focus?.(),60);return()=>clearTimeout(t);}else if(lastFocus.current){lastFocus.current.focus?.();}},[open]);useEffect(()=>{document.body.style.overflow=open?\"hidden\":\"\";return()=>{document.body.style.overflow=\"\";};},[open]);useEffect(()=>{if(!open)return;const onKey=e=>{if(e.key===\"Escape\"){closeAll();return;}if(e.key===\"Tab\"&&panelRef.current){const f=Array.from(panelRef.current.querySelectorAll('button,[href],input,textarea,select,[tabindex]:not([tabindex=\"-1\"])')).filter(el=>el.offsetParent!==null||el===panelRef.current);if(!f.length)return;const first=f[0],last=f[f.length-1];if(e.shiftKey&&(document.activeElement===first||document.activeElement===panelRef.current)){e.preventDefault();last.focus();}else if(!e.shiftKey&&document.activeElement===last){e.preventDefault();first.focus();}}};document.addEventListener(\"keydown\",onKey);return()=>document.removeEventListener(\"keydown\",onKey);},[open]);useEffect(()=>()=>{if(dissolveTimer.current!==null)clearTimeout(dissolveTimer.current);if(settleTimer.current!==null)clearTimeout(settleTimer.current);if(readyTimer.current!==null)clearTimeout(readyTimer.current);},[]);const closeAll=useCallback(()=>{if(dissolveTimer.current!==null){clearTimeout(dissolveTimer.current);dissolveTimer.current=null;}setReady(false);setOpen(false);window.setTimeout(()=>{setCat(null);setValues({});setHp(\"\");setDone(false);setError(null);setShowInvalid(false);setSending(false);setSentViaMailto(false);sendingRef.current=false;},460);},[]);const pick=c=>{setCat(c);setValues({});setShowInvalid(false);setError(null);};const set=(k,v)=>setValues(s=>({...s,[k]:v}));const fieldInvalid=f=>{const v=(values[f.k]||\"\").trim();if(f.type===\"email\")return!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(v);return v.length===0;};const valid=!!cat&&cat.fields.every(f=>!fieldInvalid(f));const buildPayload=()=>{const now=new Date;const insights={category:cat.title,categoryId:cat.id,timestamp:now.toISOString(),timestampReadable:now.toLocaleString(\"en-GB\",{dateStyle:\"long\",timeStyle:\"short\"}),localTime:now.toLocaleTimeString(\"en-GB\",{hour:\"2-digit\",minute:\"2-digit\"}),pagePath:typeof window!==\"undefined\"?window.location.pathname:\"\",pageUrl:typeof window!==\"undefined\"?window.location.href:\"\",pageTitle:typeof document!==\"undefined\"?document.title:\"\",referrer:typeof document!==\"undefined\"?document.referrer:\"\",viewport:typeof window!==\"undefined\"?`${window.innerWidth}\\xd7${window.innerHeight}`:\"\",language:typeof navigator!==\"undefined\"?navigator.language:\"\"};return{category:cat.title,categoryId:cat.id,name:values.name||\"\",email:values.email||\"\",phone:values.phone||\"\",message:values.message||\"\",company:hp,fields:cat.fields.map(f=>({label:f.label,value:values[f.k]||\"\"})),timestamp:now.toISOString(),insights,page:insights.pagePath};};const mailtoFallback=payload=>{const lines=payload.fields.map(f=>`${f.label}: ${f.value}`).join(\"\\n\");const subject=`studio mātcha — ${payload.category}`;const body=`category: ${payload.category}\n\n${lines}`;window.location.href=buildMailto(resolveEmail(fallbackEmail),subject,body);};const submit=async()=>{if(!cat)return;if(!valid){setShowInvalid(true);return;}// guide, do not blame\nif(sendingRef.current)return;// hard duplicate guard\nsendingRef.current=true;setSending(true);setError(null);const payload=buildPayload();const ep=resolveEndpoint(endpoint)// central StudioConfig endpoint, per-instance override wins\n;try{if(ep){const ctrl=new AbortController;const to=setTimeout(()=>ctrl.abort(),15e3);const r=await fetch(ep,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(payload),signal:ctrl.signal});clearTimeout(to);let okFlag=r.ok;try{const j=await r.json();okFlag=okFlag&&j&&j.ok!==false;}catch{}if(!okFlag)throw new Error(\"send failed\");// real endpoint confirmed receipt — success is genuine.\nsetDone(true);}else{// no endpoint configured — open a mailto draft. the draft is\n// not the message; it only becomes one when the guest sends it.\n// setSentViaMailto flags this so the success view is honest.\nmailtoFallback(payload);setSentViaMailto(true);setDone(true);}}catch{// TRUE failure — keep their words, show a calm, guiding message\nsetError(\"your message could not be sent just now. your words are safe below — please try once more, or write to us directly.\");}finally{setSending(false);sendingRef.current=false;}};useEffect(()=>{if(done&&open){dissolveTimer.current=window.setTimeout(()=>{closeAll();},reduced?7e3:5200);}return()=>{if(dissolveTimer.current!==null&&!done){clearTimeout(dissolveTimer.current);dissolveTimer.current=null;}};},[done,open,reduced,closeAll]);if(!mounted)return null;return /*#__PURE__*/_jsxs(\"div\",{className:\"smi-root\",children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsx(\"button\",{ref:sealRef,className:`smi-seal${revealed?\" in\":\"\"}${open?\" hidden\":\"\"}`,onClick:openInvite,\"aria-label\":\"write to studio mātcha\",style:{pointerEvents:revealed&&!open?\"auto\":\"none\"},tabIndex:revealed&&!open?0:-1,children:/*#__PURE__*/_jsx(\"span\",{className:\"smi-seal-mark\",children:/*#__PURE__*/_jsx(Seal,{size:22,color:INK})})}),/*#__PURE__*/_jsx(\"div\",{className:`smi-scrim${open?\" on\":\"\"}`,onClick:closeAll,\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsxs(\"div\",{ref:panelRef,className:`smi-panel${open?\" on\":\"\"}${ready?\" ready\":\"\"}`,role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"private invitation — studio mātcha concierge\",\"aria-hidden\":!open,tabIndex:-1,children:[/*#__PURE__*/_jsxs(\"div\",{className:\"smi-head smi-stagger s1\",children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"12px\"},children:[/*#__PURE__*/_jsx(Seal,{size:20,color:INK}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"4px\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:M,fontWeight:400,fontSize:\"16px\",letterSpacing:\"-0.02em\",textTransform:\"lowercase\",color:INK,margin:0},children:\"private invitation\"}),/*#__PURE__*/_jsx(\"p\",{style:lbl(FAINT),children:\"studio mātcha concierge\"})]})]}),/*#__PURE__*/_jsx(\"button\",{className:\"smi-x\",onClick:closeAll,\"aria-label\":\"close\",children:\"close\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"smi-body smi-stagger s2\",children:done?sentViaMailto?/* ── mailto fallback: the draft opened but nothing was received yet ── *//*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"18px\",padding:\"8px 0 4px\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:M,fontWeight:400,fontSize:\"20px\",letterSpacing:\"-0.03em\",textTransform:\"lowercase\",color:INK,margin:0},children:\"one more step.\"}),/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:M,fontWeight:300,fontSize:\"13.5px\",letterSpacing:\"-0.01em\",lineHeight:1.75,textTransform:\"lowercase\",color:SOFT,margin:0},children:\"your email draft has been opened — please send it to complete your enquiry. we read every message personally and will respond with care.\"}),/*#__PURE__*/_jsx(\"p\",{style:lbl(FAINT),children:\"— studio mātcha concierge\"})]}):/* ── real endpoint: message was received ── *//*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"18px\",padding:\"8px 0 4px\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:M,fontWeight:400,fontSize:\"20px\",letterSpacing:\"-0.03em\",textTransform:\"lowercase\",color:INK,margin:0},children:\"thank you.\"}),/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:M,fontWeight:300,fontSize:\"13.5px\",letterSpacing:\"-0.01em\",lineHeight:1.75,textTransform:\"lowercase\",color:SOFT,margin:0},children:\"your note has found its way to us. we read every message personally and will respond with care. until then, we hope to welcome you for a bowl of matcha soon.\"}),/*#__PURE__*/_jsx(\"p\",{style:lbl(FAINT),children:\"— studio mātcha concierge\"})]}):!cat?/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"20px\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:M,fontWeight:300,fontSize:\"13px\",letterSpacing:\"-0.01em\",lineHeight:1.75,textTransform:\"lowercase\",color:SOFT,margin:0},children:\"if you have an experience to plan, an idea to share, or simply wish to write to us, we would be delighted to hear from you.\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"10px\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{...lbl(FAINT),marginBottom:\"2px\"},children:\"how may we welcome you?\"}),CATEGORIES.map(c=>/*#__PURE__*/_jsxs(\"button\",{className:\"smi-card\",onClick:()=>pick(c),children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:M,fontWeight:400,fontSize:\"14px\",letterSpacing:\"-0.015em\",textTransform:\"lowercase\",color:INK},children:c.title}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:M,fontWeight:300,fontSize:\"11.5px\",letterSpacing:\"0\",lineHeight:1.55,textTransform:\"lowercase\",color:FAINT},children:c.blurb})]},c.id))]})]}):/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"20px\"},children:[/*#__PURE__*/_jsx(\"button\",{className:\"smi-back\",onClick:()=>setCat(null),children:\"← all enquiries\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"3px\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:M,fontWeight:400,fontSize:\"15px\",letterSpacing:\"-0.02em\",textTransform:\"lowercase\",color:INK,margin:0},children:cat.title}),/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:M,fontWeight:300,fontSize:\"12px\",letterSpacing:\"-0.01em\",lineHeight:1.65,textTransform:\"lowercase\",color:SOFT,margin:0},children:cat.blurb})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"14px\"},children:[cat.fields.map(f=>{const invalid=showInvalid&&fieldInvalid(f);return /*#__PURE__*/_jsxs(\"label\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"7px\"},children:[/*#__PURE__*/_jsx(\"span\",{style:lbl(SOFT),children:f.label}),f.type===\"textarea\"?/*#__PURE__*/_jsx(\"textarea\",{className:`smi-textarea${invalid?\" invalid\":\"\"}`,value:values[f.k]||\"\",onChange:e=>set(f.k,e.target.value),rows:4,\"aria-invalid\":invalid||undefined}):/*#__PURE__*/_jsx(\"input\",{className:`smi-input${invalid?\" invalid\":\"\"}`,type:f.type||\"text\",inputMode:f.type===\"number\"?\"numeric\":undefined,autoComplete:f.type===\"email\"?\"email\":f.k===\"name\"?\"name\":\"off\",value:values[f.k]||\"\",onChange:e=>set(f.k,e.target.value),\"aria-invalid\":invalid||undefined})]},f.k);}),/*#__PURE__*/_jsx(\"input\",{className:\"smi-hp\",type:\"text\",tabIndex:-1,autoComplete:\"off\",\"aria-hidden\":\"true\",value:hp,onChange:e=>setHp(e.target.value),name:\"company\"})]}),showInvalid&&!valid&&/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:M,fontWeight:300,fontSize:\"12px\",letterSpacing:\"-0.005em\",lineHeight:1.6,textTransform:\"lowercase\",color:\"rgb(150,60,50)\",margin:0},children:\"a few details still need your touch — please complete the highlighted fields.\"}),error&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"10px\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:M,fontWeight:300,fontSize:\"12.5px\",letterSpacing:\"-0.005em\",lineHeight:1.65,textTransform:\"lowercase\",color:\"rgb(150,60,50)\",margin:0},children:error}),/*#__PURE__*/_jsx(\"a\",{href:`mailto:${resolveEmail(fallbackEmail)}`,style:{...lbl(SOFT),textDecoration:\"none\",borderBottom:`1px solid ${BORDER}`,paddingBottom:\"3px\",alignSelf:\"flex-start\"},children:\"write to us directly →\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"10px\"},children:[/*#__PURE__*/_jsx(\"button\",{className:\"smi-submit\",onClick:submit,disabled:sending,children:sending?\"sending…\":error?\"try once more →\":\"send your note →\"}),/*#__PURE__*/_jsx(\"p\",{style:{...lbl(FAINT),textAlign:\"center\",lineHeight:1.6},children:\"every message is read personally.\"})]})]})})]})]});}addPropertyControls(FloatingInvitation,{endpoint:{type:ControlType.String,title:\"Endpoint\",defaultValue:\"\",description:\"Overrides StudioConfig. Leave empty to use the central STUDIO_ENDPOINT.\"},fallbackEmail:{type:ControlType.String,title:\"Fallback email\",defaultValue:\"\",description:\"Overrides StudioConfig. Leave empty to use the central STUDIO_EMAIL.\"},revealAfter:{type:ControlType.Number,title:\"Reveal after\",defaultValue:.85,min:0,max:3,step:.05,description:\"Viewport-heights scrolled before the seal appears.\"},settleDelay:{type:ControlType.Number,title:\"Settle delay\",defaultValue:1100,min:0,max:4e3,step:100,description:\"The patient pause before the seal first appears (ms).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FloatingInvitation\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FloatingInvitation.map"],"mappings":"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"}