{"version":3,"file":"StickyBar.DXUE6e01.mjs","names":["useState","useRef","_Fragment","__esmMin","init_npm_react_18_3_1","init_ssg_sandbox_shims","window","init_npm_react_dom_18_3_1","l","_e","Ha","p","c","init_jsx_runtime","ce","de","init_framer_BL70qLPA","addPropertyControls","RenderTarget","ControlType","fontVars","o","f","fam","family","quoteFamily","weight","fstyle","bookingOpen","queryAll","sel","onScreen","r","el","StickyBar","props","target","onCanvas","isClient","setIsClient","phone","setPhone","reduced","setReduced","scrolled","setScrolled","nearEnd","setNearEnd","bandVisible","setBandVisible","popupOpen","setPopupOpen","barRef","mqPhone","maxWidth","mqReduced","sync","raf","threshold","showAfter","read","y","vh","end","END_ZONE","onScroll","extra","hideWhenVisible","seen","report","any","v","io","entries","en","scan","found","ALWAYS_HIDE","next","last","now","RESCAN_MS","check","mo","shown","offset","bottomOffset","body","prev","BAR_H","BAR_GAP","root","style","linenC","tok","linen","cocoaC","cocoa","paperC","paper","font","label","LABEL_PX","button","BTN_H","bar","NAV_SHADOW","SLIDE_MS","EASE_CSS","primaryHref","primaryLabel","secondaryHref","secondaryLabel","init_StickyBar"],"sources":["https:/framerusercontent.com/modules/SMtJfaqvvHYVtyEVudYa/razTerq8vYKlL9YDeUsK/StickyBar.js"],"sourcesContent":["// @ts-nocheck\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * DejaTen sticky bar (round 3, 30 Oct 2026; round 4 sweep, 31 Oct 2026): a phone-only call to\n * action fixed to the bottom of the viewport, added as the last child of Main on the eight market pages.\n *\n * The placed node is 0 px tall and renders nothing on the canvas, in exports and thumbnails,\n * on tablet or on desktop. On phones (matchMedia up to `maxWidth`) it portals a fixed pill into\n * document.body, floating `bottomOffset` px above the viewport bottom so it clears the site's\n * Floating Nav Bar pill (fixed at the bottom on phones): Linen fill, hairline, the nav's soft\n * layered shadow, calc(100% - 32px) wide up to 420 px, 56 px tall. Inside sit two 48 px buttons\n * in the CTA pair's system (framer/cta-pair.md): the primary Cocoa with an Ivory label, the\n * secondary Ivory with a 1.5 px Cocoa outline and a Cocoa label, both labels Cormorant Garamond\n * 600 at 15 px, 0.01 em, sentence case. The primary takes 60 percent of the width and never less\n * than its label (\"Book a free design session\" is about 156 px at 15 px, so both labels fit from\n * a 320 px screen up); the secondary takes the rest.\n *\n * It slides up (250 ms, brand easing; no slide under reduced motion) once the page has scrolled\n * past `showAfter`, and hides while #book (every page's booking band), the footer,\n * [data-booking-band] or any `hideWhenVisible` match is in the viewport, while the viewport\n * bottom is within 1.5 viewport heights of the document end (the fallback for a band without\n * #book), and while the booking pop-up is open (Booking.tsx sets data-bk-locked on <html>;\n * #booking-popup and [data-booking-open] are checked as well). While shown it adds\n * bottomOffset + 56 + 12 px of padding-bottom to document.body so it never covers the end of\n * the page.\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 390\n * @framerIntrinsicHeight 1\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */const EASE_CSS=\"cubic-bezier(0.2, 0.7, 0.2, 1)\";const SLIDE_MS=250;const BTN_H=48// tap target, as the CTA pair's Stacked buttons\n;const BAR_H=BTN_H+2*3+2// 3 px inset top and bottom plus the 1 px hairline: 56\n;const BAR_GAP=12// breathing room above the pill when padding the body\n;const LABEL_PX=15;// The bar always hides near these, whatever the \"Hide near\" control holds.\nconst ALWAYS_HIDE=\"#book, footer, [data-booking-band]\";// Fallback for a band without #book: hide when the viewport bottom is this many viewport\n// heights from the document end.\nconst END_ZONE=1.5;// Framer can swap or add sections after mount (breakpoint variants, late hydration), so the\n// hide targets are looked up again at most this often while the page scrolls.\nconst RESCAN_MS=1e3;// The Floating Nav Bar's layered smooth shadow, so the two pills read as one family.\nconst NAV_SHADOW=\"0 0.7px 0.7px -0.6px rgba(22, 51, 32, 0.17), 0 1.8px 1.8px -1.2px rgba(22, 51, 32, 0.17), \"+\"0 3.6px 3.6px -1.75px rgba(22, 51, 32, 0.16), 0 6.9px 6.9px -2.3px rgba(22, 51, 32, 0.15), \"+\"0 13.6px 13.6px -2.9px rgba(22, 51, 32, 0.13), 0 30px 30px -3.5px rgba(22, 51, 32, 0.08)\";const tok=v=>v&&typeof v===\"object\"&&\"value\"in v?v.value:v;const quoteFamily=f=>/[\\s\"']/.test(f)&&!/^[\"']/.test(f)?`\"${f}\"`:f;function fontVars(f,family,weight,fstyle){const o=f&&typeof f===\"object\"?f:{};const fam=typeof o.fontFamily===\"string\"&&o.fontFamily?o.fontFamily:family;return{family:`${quoteFamily(fam)}, ${quoteFamily(family)}, Georgia, serif`,weight:o.fontWeight||weight,style:o.fontStyle||fstyle};}function bookingOpen(){if(typeof document===\"undefined\")return false;const html=document.documentElement;if(html.getAttribute(\"data-bk-locked\")===\"true\")return true;if(document.body&&document.body.getAttribute(\"data-booking-open\")!==null)return true;return!!document.querySelector(\"#booking-popup, [data-booking-open]\");}function queryAll(sel){try{return Array.from(document.querySelectorAll(sel));}catch(e){return null// an invalid selector in the control\n;}}function onScreen(el){const r=el.getBoundingClientRect();return(r.width>0||r.height>0)&&r.bottom>0&&r.top<window.innerHeight;}export default function StickyBar(props){const{primaryLabel=\"Book a free design session\",primaryHref=\"https://dejaten.com.au/?book=geo\",secondaryLabel=\"Price guide\",secondaryHref=\"https://dejaten.com.au/?book=geo&mode=guide\",showAfter=480,hideWhenVisible=\"#book, footer, [data-booking-band]\",maxWidth=809,bottomOffset=84,linen=\"#e4cbb2\",cocoa=\"#4b3621\",paper=\"#f4efe2\",font,style}=props;// Canvas, export and thumbnail are static renders (node screenshots use export): draw nothing.\nconst target=RenderTarget.current();const onCanvas=target===RenderTarget.canvas||target===RenderTarget.export||target===RenderTarget.thumbnail;const[isClient,setIsClient]=useState(false);const[phone,setPhone]=useState(false);const[reduced,setReduced]=useState(false);const[scrolled,setScrolled]=useState(false);const[nearEnd,setNearEnd]=useState(false);const[bandVisible,setBandVisible]=useState(false);const[popupOpen,setPopupOpen]=useState(false);const barRef=useRef(null);// Media queries: phone width and reduced motion.\nuseEffect(()=>{if(onCanvas)return;setIsClient(true);const mqPhone=window.matchMedia(`(max-width: ${Math.max(1,Number(maxWidth)||809)}px)`);const mqReduced=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const sync=()=>{setPhone(mqPhone.matches);setReduced(mqReduced.matches);};sync();mqPhone.addEventListener(\"change\",sync);mqReduced.addEventListener(\"change\",sync);return()=>{mqPhone.removeEventListener(\"change\",sync);mqReduced.removeEventListener(\"change\",sync);};},[onCanvas,maxWidth]);// Scroll position, throttled to animation frames: past showAfter, and near the document end.\n// While the bar shows, the body carries its padding, so going down it hides that much later\n// than it comes back going up: a margin that stops it flickering at the edge of the zone.\nuseEffect(()=>{if(!phone)return;let raf=0;const threshold=Math.max(0,Number(showAfter)||0);const read=()=>{raf=0;const y=window.scrollY||0;const vh=window.innerHeight||0;const end=document.documentElement.scrollHeight;setScrolled(y>threshold);setNearEnd(vh>0&&end-(y+vh)<END_ZONE*vh);};const onScroll=()=>{if(!raf)raf=window.requestAnimationFrame(read);};read();window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"resize\",onScroll);return()=>{window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"resize\",onScroll);if(raf)window.cancelAnimationFrame(raf);};},[phone,showAfter]);// Hide while #book, the footer, a booking band or a \"Hide near\" match is on screen.\nuseEffect(()=>{if(!phone||typeof IntersectionObserver===\"undefined\")return;const extra=String(hideWhenVisible||\"\").trim();const seen=new Map;const report=()=>{let any=false;seen.forEach(v=>{if(v)any=true;});setBandVisible(any);};const io=new IntersectionObserver(entries=>{entries.forEach(en=>{if(seen.has(en.target))seen.set(en.target,en.isIntersecting);});report();},{threshold:0});const scan=()=>{const found=extra&&queryAll(`${ALWAYS_HIDE}, ${extra}`)||queryAll(ALWAYS_HIDE)||[];const next=new Set(found);seen.forEach((_,el)=>{if(!next.has(el)){io.unobserve(el);seen.delete(el);}});next.forEach(el=>{if(!seen.has(el)){seen.set(el,onScreen(el))// the observer confirms on its first callback\n;io.observe(el);}});report();};scan();let last=Date.now();const onScroll=()=>{const now=Date.now();if(now-last<RESCAN_MS)return;last=now;scan();};window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"resize\",scan);return()=>{window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"resize\",scan);io.disconnect();};},[phone,hideWhenVisible]);// Hide while the booking pop-up is open.\nuseEffect(()=>{if(!phone||typeof MutationObserver===\"undefined\")return;const check=()=>setPopupOpen(bookingOpen());check();const mo=new MutationObserver(check);mo.observe(document.documentElement,{attributes:true,attributeFilter:[\"data-bk-locked\"]});mo.observe(document.body,{attributes:true,childList:true,subtree:false});return()=>mo.disconnect();},[phone]);const shown=isClient&&phone&&scrolled&&!nearEnd&&!bandVisible&&!popupOpen;const offset=Math.max(0,Number(bottomOffset)||0);// Keep the page's end clear of the bar: nav offset + bar height + a gap.\nuseEffect(()=>{if(!shown)return;const body=document.body;const prev=body.style.paddingBottom;body.style.paddingBottom=offset+BAR_H+BAR_GAP+\"px\";return()=>{body.style.paddingBottom=prev;};},[shown,offset]);if(onCanvas)return null;const root=/*#__PURE__*/_jsx(\"div\",{style:{...style,height:0,minHeight:0,overflow:\"visible\",pointerEvents:\"none\"}});if(!isClient||!phone)return root;const linenC=tok(linen)||\"#e4cbb2\";const cocoaC=tok(cocoa)||\"#4b3621\";const paperC=tok(paper)||\"#f4efe2\";const f=fontVars(font,\"Cormorant Garamond\",600,\"normal\");const label={fontFamily:f.family,fontWeight:f.weight,fontStyle:f.style,fontSize:LABEL_PX,lineHeight:1.3,letterSpacing:\"0.01em\",whiteSpace:\"nowrap\"};const button={height:BTN_H,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:\"0 10px\",borderRadius:999,textDecoration:\"none\",boxSizing:\"border-box\",WebkitTapHighlightColor:\"transparent\"};const bar=/*#__PURE__*/_jsxs(\"div\",{ref:barRef,\"data-dj-sticky-bar\":\"true\",\"aria-hidden\":shown?undefined:\"true\",style:{position:\"fixed\",left:16,right:16,bottom:`calc(${offset}px + env(safe-area-inset-bottom, 0px))`,width:\"calc(100% - 32px)\",maxWidth:420,margin:\"0 auto\",zIndex:900,background:linenC,border:`1px solid rgba(59, 42, 34, 0.14)`,borderRadius:999,boxShadow:NAV_SHADOW,boxSizing:\"border-box\",height:BAR_H,padding:\"3px 4px\",display:\"flex\",gap:6,alignItems:\"center\",transform:shown?\"translateY(0)\":`translateY(calc(100% + ${offset+40}px))`,visibility:shown?\"visible\":\"hidden\",pointerEvents:shown?\"auto\":\"none\",transition:reduced?\"none\":`transform ${SLIDE_MS}ms ${EASE_CSS}, visibility 0s linear ${shown?0:SLIDE_MS}ms`},children:[/*#__PURE__*/_jsx(\"a\",{href:primaryHref,style:{...button,flex:\"0 1 60%\",background:cocoaC,color:paperC},children:/*#__PURE__*/_jsx(\"span\",{style:label,children:primaryLabel})}),/*#__PURE__*/_jsx(\"a\",{href:secondaryHref,style:{...button,flex:\"0 1 40%\",minWidth:0,background:paperC,color:cocoaC,border:`1.5px solid ${cocoaC}`},children:/*#__PURE__*/_jsx(\"span\",{style:{...label,minWidth:0,overflow:\"hidden\",textOverflow:\"ellipsis\"},children:secondaryLabel})})]});return /*#__PURE__*/_jsxs(_Fragment,{children:[root,/*#__PURE__*/createPortal(bar,document.body)]});}StickyBar.displayName=\"Sticky Bar\";addPropertyControls(StickyBar,{primaryLabel:{type:ControlType.String,title:\"Primary\",defaultValue:\"Book a free design session\"},primaryHref:{type:ControlType.String,title:\"Primary link\",defaultValue:\"https://dejaten.com.au/?book=geo\"},secondaryLabel:{type:ControlType.String,title:\"Secondary\",defaultValue:\"Price guide\"},secondaryHref:{type:ControlType.String,title:\"Secondary link\",defaultValue:\"https://dejaten.com.au/?book=geo&mode=guide\"},showAfter:{type:ControlType.Number,title:\"Show after\",defaultValue:480,min:0,max:4e3,step:10,unit:\"px\"},hideWhenVisible:{type:ControlType.String,title:\"Hide near\",defaultValue:\"#book, footer, [data-booking-band]\",description:\"CSS selectors. The bar hides while any match is on screen; it always hides near #book, the footer, [data-booking-band] and the last 1.5 screens of the page.\"},maxWidth:{type:ControlType.Number,title:\"Max width\",defaultValue:809,min:320,max:1440,step:1,unit:\"px\"},bottomOffset:{type:ControlType.Number,title:\"Bottom offset\",defaultValue:84,min:0,max:240,step:1,unit:\"px\",description:\"Clears the Floating Nav Bar pill fixed at the bottom on phones.\"},linen:{type:ControlType.Color,title:\"Linen\",defaultValue:\"#e4cbb2\"},cocoa:{type:ControlType.Color,title:\"Cocoa\",defaultValue:\"#4b3621\"},paper:{type:ControlType.Color,title:\"Paper\",defaultValue:\"#f4efe2\"},font:{type:ControlType.Font,title:\"Font\",controls:\"basic\",defaultValue:{fontFamily:\"Cormorant Garamond\",fontWeight:600}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StickyBar\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StickyBar.map"],"mappings":"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"}