{"version":3,"file":"MotionDebug_1.DDaDPo9L.mjs","names":["useRef","useState","__esmMin","init_npm_react_18_3_1","init_ssg_sandbox_shims","navigator","window","_e","Ha","p","c","init_jsx_runtime","ce","de","addPropertyControls","init_framer_BWFVvmND","RenderTarget","ControlType","Beacon","host","stage","key","view","VIEWS","v","el","inner","cancelled","destroy","configURL","io","entry","mountBeacon","teardown","watch","n","o","pointer","keyboard","style","init_Beacon","captureErrors","capturing","push","msg","errors","e","original","args","a","webgl","gl2","info","renderer","measureFps","t0","tick","resolve","animations","rows","b","r","onScreen","canvas","i","waves","s","now","moving","prev","MotionDebug","on","setOn","setRows","gl","alive","update","fps","reduced","k","init_MotionDebug_1","init_npm_react_dom_18_3_1"],"sources":["https:/framerusercontent.com/modules/fKkk7ewzUzDUjUFlC5Lg/HS7p55tAstc0XBvMHsrc/Beacon.js","https:/framerusercontent.com/modules/E5azrZotQqbYXMXnqCtg/CjJEaXjcyi54bgYSnKHv/MotionDebug_1.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";// Beacon (Light / Oyster Ceramic sphere), the real-time Three.js embed from the\n// \"beacon-framer-embeds\" package, self-hosted: BeaconPlayer.tsx is the package's\n// web/beacon-player.js unchanged (v02, which adds drag rotation), and the configurations below are\n// its JSON files unchanged except `fallback`, which points at the still images uploaded to Framer\n// (WebP of the package PNGs). Both views use the v02 configurations: three-quarter can be dragged to\n// rotate (mouse/pen; arrow keys when focused, Home resets; touch keeps scrolling the page), and side\n// detail has no floor shadow and no drag.\n//\n// The still shows straight away (and in the Framer editor, and if WebGL can't start); the player is\n// fetched and mounted once the Beacon is within a screen's height of the viewport and replaces the\n// still with the live canvas after its first frame. The player itself pauses offscreen and in\n// background tabs, and holds a steady Available pose for visitors who prefer reduced motion.\n//\n// The Beacon draws into a centred stage no taller than 70% of the screen height, so on a short\n// screen (a phone held sideways) it shrinks inside its frame instead of overflowing the section.\nconst VIEWS={\"three-quarter\":{label:\"Beacon, Oyster Ceramic, Three-quarter view\",config:{schemaVersion:1,name:\"Beacon\",finish:\"light\",material:\"Oyster Ceramic\",camera:{preset:\"Three-quarter\",position:[-1.85,.95,5.7],target:[0,0,0],verticalFov:32,framingScale:.8},playback:{loop:true,secondsPerState:5,states:[\"idle\",\"thinking\",\"ready\",\"complete\"],pauseWhenHidden:true,reducedMotion:\"static-available\"},appearance:{transparent:true,pixelRatioLimit:1.75,toneMappingExposure:1.12,floorShadow:true},fallback:\"https://framerusercontent.com/images/8hAyFHQbPhMWQ9vou0AtILi8JE.webp\",interaction:{dragRotate:true}}},\"side-detail\":{label:\"Beacon, Oyster Ceramic, Available side detail\",config:{schemaVersion:1,name:\"Beacon\",finish:\"light\",material:\"Oyster Ceramic\",camera:{preset:\"Side detail\",position:[-3.9,.95,4.7],target:[0,0,0],verticalFov:32,framingScale:.8},playback:{loop:true,secondsPerState:5,states:[\"idle\"],pauseWhenHidden:true,reducedMotion:\"static-available\"},appearance:{transparent:true,pixelRatioLimit:1.75,toneMappingExposure:1.12,floorShadow:false},fallback:\"https://framerusercontent.com/images/GBEXteAJ5bwU1S66Pb4heg0iWU.webp\",interaction:{dragRotate:false}}}};/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function Beacon({view=\"three-quarter\",style}){const host=useRef(null);const stage=useRef(null);const key=String(view).toLowerCase().replace(/\\s+/g,\"-\") in VIEWS?String(view).toLowerCase().replace(/\\s+/g,\"-\"):\"three-quarter\";const v=VIEWS[key];useEffect(()=>{const el=host.current;const inner=stage.current;if(!el||!inner||RenderTarget.current()===RenderTarget.canvas)return;let cancelled=false;let destroy;// The player fetches its configuration by URL; a Blob URL keeps it in-page. It stays valid\n// until unmount because the player re-reads it if the WebGL context is restored.\nconst configURL=URL.createObjectURL(new Blob([JSON.stringify(v.config)],{type:\"application/json\"}));const io=new IntersectionObserver(([entry])=>{if(!entry.isIntersecting)return;io.disconnect();// @ts-ignore - the typechecker skips this ~530 KB bundle; it resolves at runtime\nimport(\"https://framerusercontent.com/modules/683B5wviQkf1QeVqmyXN/KQRmCz52u5SkwJjUg7Rn/BeaconPlayer.js\").then(({mountBeacon})=>cancelled?undefined:mountBeacon(inner,configURL)).then(teardown=>cancelled?teardown?.():destroy=teardown).catch(console.error);},{rootMargin:\"100% 0px\"});// Watch the nearest clipping ancestor rather than the Beacon itself: a Beacon parked outside\n// a clipped section (e.g. waiting above it to slide in) never counts as intersecting, so it\n// would only start loading once already sliding into view.\nlet watch=el;for(let n=el.parentElement;n&&n!==document.body;n=n.parentElement){const o=getComputedStyle(n);if(/(hidden|clip|auto|scroll)/.test(o.overflow+o.overflowX+o.overflowY)){watch=n;break;}}io.observe(watch);// The player focuses the canvas from script when a drag starts (so arrow keys work next), and\n// browsers treat script focus as keyboard-style focus, so the focus ring would show on every\n// mouse drag. Mark pointer use and hide the ring until a key is pressed or focus leaves.\nconst pointer=()=>el.setAttribute(\"data-pointer\",\"\");const keyboard=()=>el.removeAttribute(\"data-pointer\");el.addEventListener(\"pointerdown\",pointer,true);el.addEventListener(\"keydown\",keyboard,true);el.addEventListener(\"focusout\",keyboard);return()=>{cancelled=true;el.removeEventListener(\"pointerdown\",pointer,true);el.removeEventListener(\"keydown\",keyboard,true);el.removeEventListener(\"focusout\",keyboard);io.disconnect();destroy?.();URL.revokeObjectURL(configURL);};},[key]);return /*#__PURE__*/_jsxs(\"div\",{ref:host,className:\"fu3e-beacon\",// An interactive (drag-rotate) Beacon is a group holding a focusable canvas, as in the package\nrole:v.config.interaction?.dragRotate?\"group\":\"img\",\"aria-label\":v.label,style:{...style,position:\"relative\",width:\"100%\",height:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`.fu3e-beacon .beacon-stage{position:absolute;inset:0;margin:auto;width:min(100%,70vh);height:min(100%,70vh);width:min(100%,70svh);height:min(100%,70svh)}.fu3e-beacon canvas,.fu3e-beacon .beacon-fallback{position:absolute;inset:0;width:100%;height:100%;display:block}.fu3e-beacon .beacon-fallback{object-fit:contain}.fu3e-beacon canvas:focus-visible{outline:2px solid #0058ff;outline-offset:-4px}.fu3e-beacon[data-pointer] canvas{outline:none}`}),/*#__PURE__*/_jsx(\"div\",{ref:stage,className:\"beacon-stage\",children:/*#__PURE__*/_jsx(\"img\",{className:\"beacon-fallback\",alt:\"\",src:v.config.fallback})})]});}addPropertyControls(Beacon,{view:{type:ControlType.Enum,title:\"View\",options:[\"three-quarter\",\"side-detail\"],optionTitles:[\"Three-quarter (state tour)\",\"Side detail (Available)\"],defaultValue:\"three-quarter\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Beacon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Beacon.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{createPortal}from\"react-dom\";const errors=[];let capturing=false;function captureErrors(){if(capturing)return;capturing=true;const push=msg=>{if(/website URL has changed/i.test(msg))return;// CookieYes on the preview domain\nerrors.push(msg.slice(0,160));if(errors.length>8)errors.shift();};window.addEventListener(\"error\",e=>push(`error: ${e.message}`));window.addEventListener(\"unhandledrejection\",e=>push(`rejection: ${String(e.reason?.message??e.reason)}`));const original=console.error;console.error=(...args)=>{push(`console: ${args.map(a=>a instanceof Error?a.message:String(a)).join(\" \")}`);original.apply(console,args);};}function webgl(){try{const c=document.createElement(\"canvas\");const gl2=c.getContext(\"webgl2\");if(gl2){const info=gl2.getExtension(\"WEBGL_debug_renderer_info\");const renderer=info?gl2.getParameter(info.UNMASKED_RENDERER_WEBGL):\"renderer hidden\";gl2.getExtension(\"WEBGL_lose_context\")?.loseContext();return`WebGL2 ok (${String(renderer).slice(0,40)})`;}return document.createElement(\"canvas\").getContext(\"webgl\")?\"WebGL1 only\":\"NO WebGL\";}catch(e){return`WebGL error: ${e.message}`;}}function measureFps(){return new Promise(resolve=>{let n=0;const t0=performance.now();const tick=()=>{n++;if(performance.now()-t0<1e3)requestAnimationFrame(tick);else resolve(Math.round(n*1e3/(performance.now()-t0)));};requestAnimationFrame(tick);});}function animations(prev){const rows=[];document.querySelectorAll(\".fu3e-beacon\").forEach((b,i)=>{const el=b.querySelector(\".beacon-stage\")??b// the player's host\n;const r=el.getBoundingClientRect();const onScreen=r.bottom>0&&r.top<innerHeight&&r.width>0;const canvas=el.querySelector(\"canvas\");rows.push([`Beacon ${i+1}`,`${el.dataset.status??\"not mounted\"} \\xb7 state ${el.dataset.state??\"-\"} \\xb7 ${canvas?`canvas ${canvas.width}\\xd7${canvas.height}`:\"no canvas\"} \\xb7 ${onScreen?\"on screen\":\"off screen\"}`]);});let waves=0;document.querySelectorAll(\"svg\").forEach(s=>{const host=s.parentElement;if(!host||!/^0(px)? 0(px)?$/.test(host.style.transformOrigin))return;const g=s.querySelector(\"g g[transform]\");const now=g?.getAttribute(\"transform\")??\"\";const moving=prev.has(s)?prev.get(s)!==now:null;prev.set(s,now);const r=host.getBoundingClientRect();const onScreen=r.bottom>0&&r.top<innerHeight;rows.push([`Wave ${++waves}`,`${moving===null?\"checking\":moving?\"animating\":\"STILL\"} \\xb7 ${onScreen?\"on screen\":\"off screen\"}`]);});return rows;}export default function MotionDebug(){const[on,setOn]=useState(false);const[rows,setRows]=useState([]);useEffect(()=>{if(!/[?&]debug=motion\\b/.test(location.search))return;setOn(true);captureErrors();const prev=new Map;const gl=webgl();let alive=true;const update=async()=>{const fps=await measureFps();if(!alive)return;const reduced=matchMedia(\"(prefers-reduced-motion: reduce)\").matches;setRows([[\"Reduce Motion\",reduced?\"ON — animations are held still by design\":\"off\"],[\"Frame rate\",`${fps} fps${fps<40?\" (low: Low Power Mode or a busy device?)\":\"\"}`],[\"WebGL\",gl],[\"Screen\",`${innerWidth}\\xd7${innerHeight} @${devicePixelRatio}x`],[\"Browser\",navigator.userAgent.replace(/^Mozilla\\/5\\.0 /,\"\").slice(0,110)],...animations(prev),...errors.length?errors.map((e,i)=>[`Error ${i+1}`,e]):[[\"Errors\",\"none\"]]]);if(alive)setTimeout(update,400);};update();return()=>{alive=false;};},[]);if(!on)return null;return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",left:8,right:8,bottom:8,zIndex:2147483647,maxHeight:\"55vh\",overflow:\"auto\",padding:\"10px 12px\",borderRadius:10,background:\"rgba(10,14,40,0.92)\",color:\"#fff\",font:\"12px/1.45 ui-monospace, Menlo, monospace\",pointerEvents:\"auto\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,marginBottom:4},children:\"Motion diagnostics — screenshot this\"}),rows.map(([k,v],i)=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"span\",{style:{color:\"#9fb4ff\"},children:[k,\":\"]}),\" \",v]},i))]}),document.body);}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MotionDebug\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MotionDebug_1.map"],"mappings":"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"}