{"version":3,"file":"Nav.C5-TTszy.mjs","names":["useState","useLayoutEffect","useEffect","useRef"],"sources":["https:/framerusercontent.com/modules/ayD9p2TJBVZK6AjWgoCH/5MgBWp8k6mIdJS8JD2IV/Nav.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect,useLayoutEffect,useRef}from\"react\";// ============================================================\n// NO LIMITS BASKETBALL — 01 NAVBAR\n// Desktop / Tablet / Mobile variants in one component.\n// CTA is hidden on mobile by default (the hero carries the form).\n// ============================================================\nconst ORANGE=\"#FF6100\";const ORANGE_LT=\"#FF7A2B\";const INK=\"#0A0A0A\";const MUTED=\"#9A9A9A\";const LINE=\"rgba(255,255,255,0.12)\";const DISPLAY=\"'Anton', sans-serif\";const BODY=\"'Inter', system-ui, -apple-system, sans-serif\";const MAX=1340;const FONT_URL=\"https://fonts.googleapis.com/css2?family=Anton&family=Inter:wght@400;500;600;700;800&display=swap\";// Belt and braces. The real fix is the same <link> hard-coded in Site\n// Settings -> Custom Code -> Start of <head>, because this hook runs in an\n// effect and therefore lands AFTER first paint — Anton is a condensed display\n// face, so falling back to system sans and swapping late rewraps the headline.\nconst useFonts=()=>{useEffect(()=>{if(typeof document===\"undefined\")return;if(document.getElementById(\"nlb-fonts\"))return;const l=document.createElement(\"link\");l.id=\"nlb-fonts\";l.rel=\"stylesheet\";l.href=FONT_URL;document.head.appendChild(l);},[]);};// useLayoutEffect warns during SSR and never runs there. Pick once, at module\n// scope, so the hook call stays unconditional.\nconst useIsoLayout=typeof window!==\"undefined\"?useLayoutEffect:useEffect;// Framer renders every breakpoint frame inside the same browser window, so\n// window.innerWidth is identical for all of them and useless here. Measure the\n// component's own box instead.\n//\n// Seeded at 390 so MOBILE is what ships in the static HTML. Framer renders the\n// page at publish time and that HTML paints before any JS loads, so whatever\n// this starts at is the layout every visitor sees first. All ad traffic is\n// mobile, so mobile is the right first paint.\n//\n// offsetWidth only. getBoundingClientRect() is multiplied by the canvas zoom\n// transform and reports a 1200px frame as 300px when zoomed out; innerWidth is\n// the editor viewport. If offsetWidth is 0 the honest answer is \"not laid out\n// yet\" — the 390 seed already covers that, so there is nothing to fall back to\n// beyond the parent element.\n//\n// Pass \"desktop\" / \"tablet\" / \"mobile\" to override on canvas.\nconst useSize=override=>{const ref=useRef(null);const[w,setW]=useState(390);useIsoLayout(()=>{const el=ref.current;if(!el)return;const read=()=>{let n=el.offsetWidth||0;if(!n&&el.parentElement)n=el.parentElement.offsetWidth||0;if(n)setW(n);};read();// the Framer canvas sometimes lays out a frame after first paint\nconst late=setTimeout(read,80);if(typeof ResizeObserver!==\"undefined\"){const ro=new ResizeObserver(read);ro.observe(el);if(el.parentElement)ro.observe(el.parentElement);return()=>{clearTimeout(late);ro.disconnect();};}window.addEventListener(\"resize\",read);return()=>{clearTimeout(late);window.removeEventListener(\"resize\",read);};},[]);const forced=override&&override!==\"auto\";const isMobile=forced?override===\"mobile\":w<=600;const isTablet=forced?override===\"tablet\":w>600&&w<=1023;const effective=forced?override===\"mobile\"?390:override===\"tablet\"?810:1440:w;return{ref,w:effective,isMobile,isTablet};};/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function Navbar(props){const{layoutMode,logo,logoWidth,ctaText,ctaLink,hideCtaOnMobile,mobileTagText,bgColor,sticky}=props;useFonts();const{ref,isMobile,isTablet}=useSize(layoutMode);const[hover,setHover]=useState(false);const padY=isMobile?11:14;const logoW=isMobile?Math.min(logoWidth,112):logoWidth;const showCta=!(isMobile&&hideCtaOnMobile);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{width:\"100%\",maxWidth:\"100%\",boxSizing:\"border-box\",background:bgColor,borderBottom:\"1px solid \"+LINE,padding:padY+\"px 0\",position:sticky?\"sticky\":\"relative\",top:0,zIndex:80,fontFamily:BODY},children:/*#__PURE__*/_jsxs(\"div\",{style:{maxWidth:MAX,margin:\"0 auto\",padding:isMobile?\"0 20px\":isTablet?\"0 26px\":\"0 40px\",display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:isMobile?12:16,boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(\"a\",{href:\"#top\",style:{display:\"block\",width:logoW,flex:\"0 0 \"+logoW+\"px\",textDecoration:\"none\"},children:logo?/*#__PURE__*/_jsx(\"img\",{src:logo,alt:\"No Limits Basketball\",style:{width:\"100%\",height:\"auto\",display:\"block\"}}):/*#__PURE__*/_jsx(\"div\",{style:{height:isMobile?38:46,borderRadius:6,background:\"repeating-linear-gradient(45deg,#242424,#242424 10px,#1b1b1b 10px,#1b1b1b 20px)\",display:\"grid\",placeItems:\"center\",color:ORANGE,fontSize:10,fontWeight:700,letterSpacing:\"0.08em\",textTransform:\"uppercase\",textAlign:\"center\"},children:\"Logo\"})}),showCta?/*#__PURE__*/_jsxs(\"a\",{href:ctaLink,onMouseEnter:()=>setHover(true),onMouseLeave:()=>setHover(false),style:{display:\"inline-flex\",alignItems:\"center\",gap:10,background:hover?ORANGE_LT:ORANGE,color:\"#fff\",fontFamily:BODY,fontWeight:600,fontSize:isMobile?12.6:isTablet?14:14.7,padding:isMobile?\"11px 15px\":\"13px 26px\",borderRadius:999,whiteSpace:\"nowrap\",textDecoration:\"none\",boxShadow:\"0 10px 34px rgba(255,97,0,0.34)\",transition:\"background .18s ease\"},children:[ctaText,!isMobile?/*#__PURE__*/_jsx(\"span\",{style:{fontSize:13,opacity:.9},children:\"→\"}):null]}):mobileTagText?/*#__PURE__*/_jsx(\"span\",{style:{fontSize:10.5,fontWeight:700,letterSpacing:\"0.18em\",textTransform:\"uppercase\",color:MUTED},children:mobileTagText}):null]})});}Navbar.defaultProps={layoutMode:\"auto\",logoWidth:150,ctaText:\"Book My Free Session\",ctaLink:\"#start\",hideCtaOnMobile:true,mobileTagText:\"\",bgColor:INK,sticky:true};addPropertyControls(Navbar,{layoutMode:{type:ControlType.Enum,title:\"Layout\",options:[\"auto\",\"desktop\",\"tablet\",\"mobile\"],optionTitles:[\"Auto (measure)\",\"Desktop\",\"Tablet\",\"Mobile\"],description:\"Auto measures the container. Force it per breakpoint frame if the canvas guesses wrong.\"},logo:{type:ControlType.Image,title:\"Logo\",description:\"Upload at 2x for retina. 300x92px or larger.\"},logoWidth:{type:ControlType.Number,title:\"Logo Width\",min:80,max:260,step:2,displayStepper:true},ctaText:{type:ControlType.String,title:\"CTA Text\"},ctaLink:{type:ControlType.String,title:\"CTA Link\",description:\"Anchor like #start, or a full URL.\"},hideCtaOnMobile:{type:ControlType.Boolean,title:\"Hide CTA on Mobile\",description:\"On by default — the mobile hero has the form in it.\"},mobileTagText:{type:ControlType.String,title:\"Mobile Tag\",description:\"Optional small label shown on mobile in place of the CTA.\",hidden:p=>!p.hideCtaOnMobile},bgColor:{type:ControlType.Color,title:\"Background\"},sticky:{type:ControlType.Boolean,title:\"Sticky\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Navbar\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Nav.map"],"mappings":"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"}