{"version":3,"file":"AudioEngine.Btefy1Va.mjs","names":[],"sources":["https:/framerusercontent.com/modules/I290cfhhgb7udTHBMDqV/2KzhQbnsasIMFeFpeXgU/AudioEngine.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect}from\"react\";import{useIsStaticRenderer}from\"framer\";const PRESETS={soft:{hover:{type:\"sine\",freq:520,duration:.06,gain:.16},click:{type:\"sine\",freq:660,freqEnd:440,duration:.12,gain:.3}},digital:{hover:{type:\"triangle\",freq:880,duration:.05,gain:.14},click:{type:\"square\",freq:1200,freqEnd:720,duration:.09,gain:.2}},retro:{hover:{type:\"square\",freq:440,duration:.05,gain:.12},click:{type:\"square\",freq:330,freqEnd:660,duration:.14,gain:.18}},pop:{hover:{type:\"sine\",freq:720,duration:.05,gain:.15},click:{type:\"sine\",freq:900,freqEnd:480,duration:.1,gain:.32}},minimal:{hover:{type:\"sine\",freq:600,duration:.03,gain:.09},click:{type:\"sine\",freq:820,duration:.05,gain:.2}}};const CLICKABLE_SELECTOR='a, button, [role=\"button\"], [role=\"link\"], input, select, textarea, label, summary';const OPT_OUT_SELECTOR=\"[data-no-sound]\";const SECTION_SELECTOR=\"section, main, article, form, nav, footer, header\";const DEFAULT_SETTINGS={muted:false,enableHover:true,enableClick:true,volume:.6,preset:\"soft\",feedbackTarget:\"clickable\",scope:\"page\",rootElement:null,persist:true};let audioContext=null;let fileCache=new Map;let settings=null;let subscribers=new Set;function readInitialMuted(){if(typeof window===\"undefined\")return false;const saved=window.localStorage.getItem(\"framer-sound-muted\");return saved!==null?saved===\"1\":false;}function getSettings(){if(settings)return settings;const muted=readInitialMuted();settings={...DEFAULT_SETTINGS,muted};window.__framerGlobalMuted=muted;window.__framerGlobalVolume=settings.volume;window.__framerGlobalPresetName=settings.preset;window.__framerGlobalFeedbackTarget=settings.feedbackTarget;window.__framerGlobalEnableHover=settings.enableHover;window.__framerGlobalEnableClick=settings.enableClick;window.__framerGlobalScope=settings.scope;return settings;}function notifyMuted(next){window.__framerGlobalMuted=next;subscribers.forEach(listener=>listener(next));}function setMuted(next,persistOverride){const s=getSettings();s.muted=next;const shouldPersist=persistOverride??s.persist;if(shouldPersist){window.localStorage.setItem(\"framer-sound-muted\",next?\"1\":\"0\");}notifyMuted(next);}function configure(partial){const s=getSettings();Object.assign(s,partial);window.__framerGlobalMuted=s.muted;window.__framerGlobalVolume=s.volume;window.__framerGlobalPresetName=s.preset;window.__framerGlobalClickUrl=s.clickUrl;window.__framerGlobalHoverUrl=s.hoverUrl;window.__framerGlobalFeedbackTarget=s.feedbackTarget;window.__framerGlobalEnableHover=s.enableHover;window.__framerGlobalEnableClick=s.enableClick;window.__framerGlobalToggleRoot=s.rootElement;window.__framerGlobalScope=s.scope;}function getAudioContext(){if(typeof window===\"undefined\")return null;if(audioContext)return audioContext;const AC=window.AudioContext||window.webkitAudioContext;if(!AC)return null;try{audioContext=new AC;return audioContext;}catch{return null;}}function playSynth(kind){const s=getSettings();const ctx=getAudioContext();if(!ctx)return;if(ctx.state===\"suspended\"){ctx.resume().catch(()=>{});}const preset=PRESETS[s.preset]??PRESETS.soft;const cfg=preset[kind];const now=ctx.currentTime;const osc=ctx.createOscillator();const gain=ctx.createGain();osc.type=cfg.type;osc.frequency.setValueAtTime(cfg.freq,now);if(cfg.freqEnd){osc.frequency.exponentialRampToValueAtTime(cfg.freqEnd,now+cfg.duration);}const peak=Math.max(1e-4,cfg.gain*Math.max(0,Math.min(1,s.volume)));gain.gain.setValueAtTime(1e-4,now);gain.gain.exponentialRampToValueAtTime(peak,now+.006);gain.gain.exponentialRampToValueAtTime(1e-4,now+cfg.duration);osc.connect(gain);gain.connect(ctx.destination);osc.start(now);osc.stop(now+cfg.duration+.03);}function playFile(url){const s=getSettings();try{let base=fileCache.get(url);if(!base){base=new Audio(url);base.preload=\"auto\";fileCache.set(url,base);}const node=base.cloneNode(true);node.volume=Math.max(0,Math.min(1,s.volume));const promise=node.play();if(promise&&typeof promise.catch===\"function\"){promise.catch(()=>{});}}catch{}}function playFeedback(kind){const s=getSettings();if(s.muted)return;if(s.preset===\"custom\"){const url=kind===\"hover\"?s.hoverUrl:s.clickUrl;if(url){playFile(url);return;}}playSynth(kind);}function resolveSectionScope(root){const semantic=root.closest(SECTION_SELECTOR);if(semantic)return semantic;let el=root;while(el.parentElement&&el.parentElement!==document.body){if(el.parentElement.children.length>=2)return el.parentElement;el=el.parentElement;}return el;}function findEligible(target){const s=getSettings();if(s.feedbackTarget===\"page\")return target;const clickable=target.closest?.(CLICKABLE_SELECTOR);if(clickable)return clickable;try{if(window.getComputedStyle(target).cursor===\"pointer\"){return target;}}catch{}return null;}function isInsideScope(target){const s=getSettings();const root=s.rootElement;if(s.scope===\"page\"||!root)return true;if(s.scope===\"component\"){return root.contains(target);}const section=resolveSectionScope(root);return section.contains(target);}function isToggleElement(target){const s=getSettings();if(s.scope===\"component\")return false;const root=s.rootElement;return!!root&&root.contains(target);}function initializeEngine(){if(typeof window===\"undefined\"||typeof document===\"undefined\")return;if(window.__framerAudioEngineActive)return;window.__framerAudioEngineActive=true;getSettings();if(window.__framerPendingAudioConfig){configure(window.__framerPendingAudioConfig);delete window.__framerPendingAudioConfig;}window.__framerAudio={getMuted:()=>getSettings().muted,setMuted:(muted,persistOverride)=>setMuted(muted,persistOverride),toggleMuted:persistOverride=>{const next=!getSettings().muted;setMuted(next,persistOverride);return next;},configure,subscribe:listener=>{subscribers.add(listener);listener(getSettings().muted);return()=>subscribers.delete(listener);}};let currentHover=null;let lastHoverPlay=0;const isTouch=typeof window.matchMedia===\"function\"&&window.matchMedia(\"(hover: none)\").matches;const onMouseOver=event=>{const s=getSettings();if(s.muted||!s.enableHover||isTouch)return;const target=event.target;if(!target?.closest)return;if(target.closest(OPT_OUT_SELECTOR))return;if(isToggleElement(target))return;if(!isInsideScope(target))return;const eligible=findEligible(target);if(!eligible)return;if(eligible===currentHover)return;currentHover=eligible;const now=typeof performance!==\"undefined\"?performance.now():Date.now();if(now-lastHoverPlay<40)return;lastHoverPlay=now;playFeedback(\"hover\");};const onPointerDown=event=>{const s=getSettings();if(s.muted||!s.enableClick)return;const target=event.target;if(!target?.closest)return;if(target.closest(OPT_OUT_SELECTOR))return;if(isToggleElement(target))return;if(!isInsideScope(target))return;const eligible=findEligible(target);if(s.feedbackTarget===\"clickable\"&&!eligible)return;playFeedback(\"click\");};const unlock=()=>{const ctx=getAudioContext();if(ctx?.state===\"suspended\"){ctx.resume().catch(()=>{});}};window.addEventListener(\"mouseover\",onMouseOver,{passive:true});window.addEventListener(\"pointerdown\",onPointerDown,{passive:true});window.addEventListener(\"pointerdown\",unlock,{passive:true});window.addEventListener(\"touchstart\",unlock,{passive:true});}export default function AudioEngine(){const isStatic=useIsStaticRenderer();useEffect(()=>{if(isStatic||typeof window===\"undefined\")return;initializeEngine();},[isStatic]);return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"fixed\",left:0,top:0,width:1,height:1,opacity:0,pointerEvents:\"none\",overflow:\"hidden\"}});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AudioEngine\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AudioEngine.map"],"mappings":"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"}