{"version":3,"file":"BeatsStoreEmbed.Cc8RGe1P.mjs","names":["useId","useRef","useState","useCallback","useMemo"],"sources":["https:/framerusercontent.com/modules/FRpsEiPoptU01KgdpETO/m74uytBQOWhDam4sCeTF/BeatsStoreEmbed.js"],"sourcesContent":["// Blue Nova — embedded Airbit store. Same embed the live /beats page uses,\n// wrapped in a titled section with an anchor so hero and grid CTAs can jump\n// straight to it.\n//\n// The store is ~8MB of uncacheable third-party JavaScript. Native\n// loading=\"lazy\" does NOT hold it back — Chrome's lazy threshold on slow\n// connections is large enough that Lighthouse still downloads the whole thing\n// during load. So the iframe is gated on a real IntersectionObserver, with a\n// dark skeleton holding the exact reserved height in the meantime (CLS stays\n// at 0) and an optional tap-to-load on phones.\n//\n// Dead-click fixes (Clarity, Sep 2026):\n//   - On phones the whole tap-to-load overlay is clickable, not just the button.\n//   - On desktop, clicking the placeholder before the store has mounted loads\n//     it immediately instead of doing nothing.\n//   - While the iframe is loading, a \"Loading the store…\" indicator shows so\n//     clicks on the skeleton get visible feedback.\n//\n// NOTE: the iframe height props are named embedHeight / embedHeightPhone on\n// purpose — a prop called \"height\" collides with the layer's own layout height\n// in Framer.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useCallback,useEffect,useId,useMemo,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const DISPLAY_FONT_URL=\"https://framerusercontent.com/assets/7yv2zFoEgODIVvLfCLg31ZMocpw.woff2\";const DISPLAY='\"Neue Power Medium\", \"Neue Power Medium Placeholder\", \"Inter\", sans-serif';const SANS='\"Inter\", \"Inter Placeholder\", -apple-system, BlinkMacSystemFont, sans-serif';/**\n * Beats Store Embed\n *\n * @framerIntrinsicWidth 1440\n * @framerIntrinsicHeight 1100\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function BeatsStoreEmbed(props){const{anchorId=\"beat-store\",eyebrow=\"THE FULL CATALOG\",eyebrowColor=\"rgb(255, 255, 255)\",title=\"Every beat, in one place\",subtitle=\"Filter by genre, mood, key or BPM, play anything in full, and add what you want straight to the cart.\",storeUrl=\"https://BlueNova.infinity.airbit.com?config_id=199&embed=1\",embedHeight=900,embedHeightPhone=700,framed=true,lazy=true,rootMargin=400,clickToLoadOnMobile=true,mobileBreakpoint=700,buttonLabel=\"Load the store\",hintText=\"Browsing and checkout happen right here — we just don't load it until you want it.\",autoGrow=false,accent=\"rgb(20, 110, 245)\",background=\"rgb(12, 12, 12)\",cardBackground=\"rgb(28, 27, 33)\",style}=props;const uid=useId().replace(/[^a-zA-Z0-9]/g,\"\");const k=`bnbs-${uid}`;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const frameRef=useRef(null);const[mounted,setMounted]=useState(false);const[ready,setReady]=useState(false);const[grown,setGrown]=useState(false);const[isPhone,setIsPhone]=useState(false);const reservedPx=Math.max(200,embedHeight);const reservedPhonePx=Math.max(200,embedHeightPhone);useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;const mq=window.matchMedia(`(max-width: ${mobileBreakpoint}px)`);const apply=()=>setIsPhone(mq.matches);apply();if(mq.addEventListener){mq.addEventListener(\"change\",apply);return()=>mq.removeEventListener(\"change\",apply);}mq.addListener(apply);return()=>mq.removeListener(apply);},[mobileBreakpoint]);// On the canvas we always render the real embed, so the section looks\n// finished while designing.\nconst deferred=lazy&&!isCanvas;const waitsForTap=deferred&&clickToLoadOnMobile&&isPhone;const mount=useCallback(()=>setMounted(true),[]);useEffect(()=>{if(!deferred){setMounted(true);return;}if(mounted||waitsForTap)return;if(typeof window===\"undefined\")return;const node=frameRef.current;if(!node||typeof IntersectionObserver===\"undefined\"){const idle=window.requestIdleCallback;if(idle){const handle=idle(mount,{timeout:2500});return()=>window.cancelIdleCallback?.(handle);}const t=window.setTimeout(mount,1500);return()=>window.clearTimeout(t);}const observer=new IntersectionObserver(entries=>{for(const entry of entries){if(!entry.isIntersecting)continue;observer.disconnect();// Give the frame back to the browser before adding ~8MB of\n// work, so the scroll that triggered this stays smooth.\nconst idle=window.requestIdleCallback;if(idle)idle(mount,{timeout:600});else window.setTimeout(mount,0);}},{rootMargin:`${Math.max(0,rootMargin)}px 0px`,threshold:0});observer.observe(node);return()=>observer.disconnect();},[deferred,mounted,waitsForTap,rootMargin,mount]);// Some embeds never fire load. Reveal anyway rather than leaving the\n// skeleton sitting on top of a working store.\nuseEffect(()=>{if(!mounted||ready)return;const t=window.setTimeout(()=>{setReady(true);if(autoGrow)setGrown(true);},3e3);return()=>window.clearTimeout(t);},[mounted,ready,autoGrow]);const rowCount=useMemo(()=>{const usable=(isPhone?reservedPhonePx:reservedPx)-40;return Math.max(3,Math.min(14,Math.floor(usable/68)));},[isPhone,reservedPx,reservedPhonePx]);const css=`\n@font-face{font-family:\"Neue Power Medium\";src:url(\"${DISPLAY_FONT_URL}\") format(\"woff2\");font-weight:500;font-style:normal;font-display:swap}\n.${k}{container-type:inline-size;container-name:${k};width:100%;background:${background};color:#fff;font-family:${SANS};scroll-margin-top:90px}\n.${k} *{box-sizing:border-box}\n.${k} button{font-family:${SANS}}\n.${k} .wrap{padding:0 100px}\n.${k} .in{max-width:1240px;margin:0 auto;padding:88px 0;border-top:1px solid rgba(255,255,255,.08)}\n.${k} .eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;color:${eyebrowColor}}\n.${k} h2{margin:14px 0 0;font-family:${DISPLAY};font-weight:500;font-size:42px;line-height:1.12;letter-spacing:-0.01em}\n.${k} .sub{margin:12px 0 0;font-size:16px;line-height:1.6;color:rgb(194,194,194);max-width:640px}\n.${k} .frame{position:relative;margin-top:34px;border-radius:16px;overflow:hidden;background:${cardBackground};border:1px solid rgba(255,255,255,.1);min-height:${reservedPx}px}\n.${k} .frame[data-mounted=\"0\"]{cursor:pointer}\n.${k} .frame[data-framed=\"0\"]{border:0;background:transparent;border-radius:0}\n.${k} iframe{display:block;width:100%;border:0;opacity:0;transition:opacity .35s ease}\n.${k} .frame[data-ready=\"1\"] iframe{opacity:1}\n/* --- placeholder --- */\n.${k} .sk{position:absolute;inset:0;display:flex;flex-direction:column;padding:20px;transition:opacity .35s ease;pointer-events:none}\n.${k} .frame[data-ready=\"1\"] .sk{opacity:0}\n.${k} .sk-head{display:flex;align-items:center;gap:12px;flex:none}\n.${k} .sk-search{flex:1;height:38px;border-radius:9px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07)}\n.${k} .sk-pill{width:84px;height:32px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);flex:none}\n.${k} .sk-rows{margin-top:16px;display:flex;flex-direction:column;gap:10px;flex:1;overflow:hidden}\n.${k} .sk-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);flex:1 1 0;min-height:54px;max-height:88px}\n.${k} .sk-play{width:34px;height:34px;border-radius:50%;flex:none;background:rgba(255,255,255,.1);position:relative}\n.${k} .sk-play:after{content:\"\";position:absolute;top:50%;left:54%;transform:translate(-50%,-50%);border-left:9px solid rgba(255,255,255,.35);border-top:6px solid transparent;border-bottom:6px solid transparent}\n.${k} .sk-art{width:40px;height:40px;border-radius:7px;flex:none;background:rgba(255,255,255,.07)}\n.${k} .sk-lines{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}\n.${k} .sk-line{height:9px;border-radius:5px;background:rgba(255,255,255,.1)}\n.${k} .sk-line.s{width:38%;background:rgba(255,255,255,.06)}\n.${k} .sk-price{width:62px;height:28px;border-radius:7px;flex:none;background:rgba(255,255,255,.08)}\n/* The sweep rides on transform, not background-position: the latter can't be\n   handed to the compositor, so it repaints the whole skeleton every frame and\n   Lighthouse flags it as a non-composited animation. Same motion, GPU-side.\n   The keyframe percentages are the exact equivalent of the old travel:\n   background-position 140% -> -40% over a 220%-wide image resolves to\n   -1.68x -> +0.48x of the box, i.e. -76.4% -> +21.8% of the band's own width. */\n.${k} .shimmer{position:absolute;inset:0;pointer-events:none;overflow:hidden}\n.${k} .shimmer::after{content:\"\";position:absolute;top:0;bottom:0;left:0;width:220%;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.055) 45%,transparent 70%);will-change:transform;animation:${k}-sweep 1.8s linear infinite}\n@keyframes ${k}-sweep{0%{transform:translate3d(-76.4%,0,0)}100%{transform:translate3d(21.8%,0,0)}}\n/* --- loading indicator (feedback for clicks while the store boots) --- */\n.${k} .loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;background:rgba(12,12,12,.88);border:1px solid rgba(255,255,255,.1);font-size:13px;font-weight:500;color:rgb(214,214,214);pointer-events:none;white-space:nowrap}\n.${k} .spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:${accent};animation:${k}-spin .8s linear infinite}\n@keyframes ${k}-spin{to{transform:rotate(360deg)}}\n.${k} .cta{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;cursor:pointer;background:linear-gradient(to bottom,rgba(12,12,12,.82),rgba(12,12,12,.96));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}\n.${k} .cta p{margin:0;font-size:13px;line-height:1.55;color:rgb(178,178,178);max-width:320px}\n.${k} .btn{appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:9px;padding:13px 22px;border-radius:10px;font:600 15px/1 ${SANS};background:${accent};color:#fff;transition:background .18s ease,transform .12s ease}\n.${k} .btn:hover,.${k} .cta:hover .btn{background:rgb(0,39,97)}\n.${k} .btn:active{transform:translateY(1px)}\n.${k} .btn:focus-visible{outline:2px solid #fff;outline-offset:3px}\n@container ${k} (max-width: 1200px){\n.${k} .wrap{padding:0 56px}\n.${k} h2{font-size:36px}\n}\n@container ${k} (max-width: 900px){\n.${k} .wrap{padding:0 32px}\n.${k} .in{padding:64px 0}\n.${k} h2{font-size:32px}\n}\n@container ${k} (max-width: 560px){\n.${k} .wrap{padding:0 20px}\n.${k} h2{font-size:28px}\n.${k} .frame{margin-top:24px;border-radius:12px;min-height:${reservedPhonePx}px}\n.${k} .sk{padding:14px}\n.${k} .sk-art{display:none}\n}\n@media (prefers-reduced-motion:reduce){\n.${k} .shimmer::after,.${k} .spin{animation:none}\n.${k} iframe,.${k} .sk{transition:none}\n}\n`;const rows=Array.from({length:rowCount},(_,i)=>i);const reserved=(isPhone?reservedPhonePx:reservedPx)+\"px\";const showTap=waitsForTap&&!mounted;const showLoading=!isCanvas&&mounted&&!ready;return /*#__PURE__*/_jsxs(\"div\",{className:k,style:style,id:anchorId||undefined,children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),/*#__PURE__*/_jsx(\"div\",{className:\"wrap\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"in\",children:[eyebrow?/*#__PURE__*/_jsx(\"div\",{className:\"eyebrow\",children:eyebrow}):null,/*#__PURE__*/_jsx(\"h2\",{children:title}),subtitle?/*#__PURE__*/_jsx(\"p\",{className:\"sub\",children:subtitle}):null,/*#__PURE__*/_jsxs(\"div\",{className:\"frame\",ref:frameRef,\"data-framed\":framed?\"1\":\"0\",\"data-ready\":ready?\"1\":\"0\",\"data-mounted\":mounted?\"1\":\"0\",\"aria-busy\":!ready,onClick:mounted?undefined:mount,children:[!ready?/*#__PURE__*/_jsxs(\"div\",{className:\"sk\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"sk-head\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"sk-search\"}),/*#__PURE__*/_jsx(\"div\",{className:\"sk-pill\"}),/*#__PURE__*/_jsx(\"div\",{className:\"sk-pill\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"sk-rows\",children:rows.map(i=>/*#__PURE__*/_jsxs(\"div\",{className:\"sk-row\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"sk-play\"}),/*#__PURE__*/_jsx(\"div\",{className:\"sk-art\"}),/*#__PURE__*/_jsxs(\"div\",{className:\"sk-lines\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"sk-line\",style:{width:`${58+i*7%26}%`}}),/*#__PURE__*/_jsx(\"div\",{className:\"sk-line s\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"sk-price\"})]},i))}),/*#__PURE__*/_jsx(\"div\",{className:\"shimmer\"})]}):null,showLoading?/*#__PURE__*/_jsxs(\"div\",{className:\"loading\",role:\"status\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"spin\",\"aria-hidden\":\"true\"}),\"Loading the store…\"]}):null,showTap?/*#__PURE__*/_jsxs(\"div\",{className:\"cta\",onClick:mount,children:[hintText?/*#__PURE__*/_jsx(\"p\",{children:hintText}):null,/*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:\"btn\",onClick:mount,children:[/*#__PURE__*/_jsx(\"svg\",{width:\"12\",height:\"14\",viewBox:\"0 0 10 12\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M0 0.8C0 0.3 0.55 0 0.97 0.25L9.4 5.45C9.8 5.69 9.8 6.31 9.4 6.55L0.97 11.75C0.55 12 0 11.7 0 11.2V0.8Z\",fill:\"currentColor\"})}),buttonLabel]})]}):null,mounted?/*#__PURE__*/_jsx(\"iframe\",{id:\"airbit_infinity\",src:storeUrl,title:title||\"Blue Nova beat store\",scrolling:\"no\",loading:\"lazy\",allow:\"autoplay; clipboard-write; encrypted-media\",style:grown?undefined:{height:reserved},onLoad:()=>{setReady(true);if(autoGrow)setGrown(true);}}):null]})]})})]});}addPropertyControls(BeatsStoreEmbed,{anchorId:{type:ControlType.String,title:\"Anchor ID\",defaultValue:\"beat-store\"},eyebrow:{type:ControlType.String,title:\"Eyebrow\",defaultValue:\"THE FULL CATALOG\"},eyebrowColor:{type:ControlType.Color,title:\"Eyebrow Color\",defaultValue:\"rgb(255, 255, 255)\"},title:{type:ControlType.String,title:\"Title\",defaultValue:\"Every beat, in one place\"},subtitle:{type:ControlType.String,title:\"Subtitle\",displayTextArea:true,defaultValue:\"Filter by genre, mood, key or BPM, play anything in full, and add what you want straight to the cart.\"},storeUrl:{type:ControlType.String,title:\"Store URL\",defaultValue:\"https://BlueNova.infinity.airbit.com?config_id=199&embed=1\"},embedHeight:{type:ControlType.Number,title:\"Store Height\",defaultValue:900,min:300,max:3e3,step:50,unit:\"px\"},embedHeightPhone:{type:ControlType.Number,title:\"↳ on Phone\",defaultValue:700,min:300,max:3e3,step:50,unit:\"px\"},lazy:{type:ControlType.Boolean,title:\"Defer Load\",description:\"Hold the ~8MB store until it is near the viewport. Off = old behaviour.\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},rootMargin:{type:ControlType.Number,title:\"Distance\",description:\"Start loading this many px before the store scrolls into view.\",defaultValue:400,min:0,max:1600,step:50,displayStepper:true,hidden:p=>p.lazy===false},clickToLoadOnMobile:{type:ControlType.Boolean,title:\"Tap on Phone\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:p=>p.lazy===false},buttonLabel:{type:ControlType.String,title:\"Button\",defaultValue:\"Load the store\",hidden:p=>p.lazy===false||p.clickToLoadOnMobile===false},hintText:{type:ControlType.String,title:\"Hint\",displayTextArea:true,defaultValue:\"Browsing and checkout happen right here — we just don't load it until you want it.\",hidden:p=>p.lazy===false||p.clickToLoadOnMobile===false},mobileBreakpoint:{type:ControlType.Number,title:\"Phone ≤\",defaultValue:700,min:320,max:1024,step:10,hidden:p=>p.lazy===false},autoGrow:{type:ControlType.Boolean,title:\"Auto Height\",description:\"Let the store grow past Store Height after it loads. Off keeps today's fixed height.\",defaultValue:false},framed:{type:ControlType.Boolean,title:\"Card Frame\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"rgb(20, 110, 245)\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgb(12, 12, 12)\"},cardBackground:{type:ControlType.Color,title:\"Card BG\",defaultValue:\"rgb(28, 27, 33)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BeatsStoreEmbed\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1440\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"1100\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BeatsStoreEmbed.map"],"mappings":"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"}