{"version":3,"file":"shared-lib.D_df470F.mjs","names":["p"],"sources":["https:/framerusercontent.com/modules/kMQaP6k1jJnuVLv4cufg/2OtnlgQeRS1Yh4tVVZTA/LogoAnimator.js","https:/framerusercontent.com/modules/ulZLYjziXyYNtcndpwAV/fcocYvV6txccOKYySmlG/kk1g8TeHD.js","https:/framerusercontent.com/modules/r19p7j3p2iwSHqtea2oN/0SNYfE7tsCwzS2eRRbUz/siteMetadata.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useRef,useEffect,useMemo,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";// --- Hook voor de SVG frame-animatie ---\nfunction useHoverAnimation(frameCount,speed=100){const[index,setIndex]=useState(0);const intervalRef=useRef(null);const isStatic=useIsStaticRenderer();const start=()=>{if(isStatic||intervalRef.current)return;intervalRef.current=setInterval(()=>{startTransition(()=>setIndex(i=>(i+1)%frameCount));},speed);};const stop=()=>{if(intervalRef.current){clearInterval(intervalRef.current);intervalRef.current=null;}};useEffect(()=>{return()=>stop();},[]);return{index,start,stop};}// --- AANGEPASTE AUDIO HOOK met PAUSE/RESUME functionaliteit ---\nfunction useAudio(audioSrc){const audioContextRef=useRef(null);const audioBufferRef=useRef(null);const sourceRef=useRef(null);const startTimeRef=useRef(0)// Wanneer de audio is gestart\n;const pauseTimeRef=useRef(0)// Hoeveel tijd er was afgespeeld toen gepauzeerd\n;const isPlayingRef=useRef(false);const[isLoaded,setIsLoaded]=useState(false);const isStatic=useIsStaticRenderer();useEffect(()=>{if(!audioSrc||isStatic)return;// Maak één enkele AudioContext aan en hergebruik deze.\nif(!window.audioContext){window.audioContext=new(window.AudioContext||window.webkitAudioContext);}audioContextRef.current=window.audioContext;// Een vlag om te voorkomen dat we de audio afspelen terwijl een nieuwe wordt geladen\nlet isActive=true;setIsLoaded(false);const setupAudio=async()=>{try{// 1. Haal de audio data op\nconst response=await fetch(audioSrc);const arrayBuffer=await response.arrayBuffer();// 2. Decodeer de audio data naar een AudioBuffer\nconst audioBuffer=await audioContextRef.current.decodeAudioData(arrayBuffer);if(isActive){audioBufferRef.current=audioBuffer;setIsLoaded(true);}}catch(error){console.warn(\"Web Audio API error:\",error);if(isActive){setIsLoaded(false);}}};setupAudio();return()=>{isActive=false;// Stop eventuele lopende audio als de component unmount\nif(sourceRef.current){try{sourceRef.current.stop();}catch(e){}sourceRef.current=null;}// Reset timing refs\nstartTimeRef.current=0;pauseTimeRef.current=0;isPlayingRef.current=false;};},[audioSrc,isStatic]);const startAudio=()=>{if(!isLoaded||!audioContextRef.current||!audioBufferRef.current||isPlayingRef.current){return;}// Stop en verwijder de vorige source als die nog bestaat\nif(sourceRef.current){try{sourceRef.current.stop();}catch(e){}}// 3. Maak een nieuwe AudioBufferSourceNode aan\nconst source=audioContextRef.current.createBufferSource();source.buffer=audioBufferRef.current;source.loop=true;source.connect(audioContextRef.current.destination);// 4. Start de audio vanaf de gepauzeerde positie\nconst offset=pauseTimeRef.current%audioBufferRef.current.duration;source.start(0,offset);startTimeRef.current=audioContextRef.current.currentTime-pauseTimeRef.current;isPlayingRef.current=true;// Sla de nieuwe source op\nsourceRef.current=source;};const pauseAudio=()=>{if(sourceRef.current&&isPlayingRef.current){try{// Bereken hoeveel tijd er is afgespeeld\nconst currentTime=audioContextRef.current.currentTime;const elapsedTime=currentTime-startTimeRef.current;pauseTimeRef.current=elapsedTime;// Stop de audio\nsourceRef.current.stop();isPlayingRef.current=false;}catch(e){}sourceRef.current=null;}};const resumeAudio=()=>{if(!isPlayingRef.current){startAudio();}};const stopAudio=()=>{if(sourceRef.current){try{sourceRef.current.stop();}catch(e){}sourceRef.current=null;}// Reset timing\nstartTimeRef.current=0;pauseTimeRef.current=0;isPlayingRef.current=false;};return{startAudio,pauseAudio,resumeAudio,stopAudio,isLoaded};}// --- Helper functies voor SVG parsing ---\nfunction parseSVGChildren(svgString){if(!svgString)return null;try{const parser=new window.DOMParser;const doc=parser.parseFromString(svgString,\"image/svg+xml\");const svg=doc.querySelector(\"svg\");if(!svg)return null;return svg.innerHTML;}catch{return null;}}function getViewBox(svgString){if(!svgString)return undefined;try{const parser=new window.DOMParser;const doc=parser.parseFromString(svgString,\"image/svg+xml\");const svg=doc.querySelector(\"svg\");if(!svg)return undefined;return svg.getAttribute(\"viewBox\")||undefined;}catch{return undefined;}}/**\n * LogoAnimator\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function LogoAnimator(props){const{baseSVG,part1Frames,part2Frames,part3Frames,animationSpeed,part1Audio,part2Audio,part3Audio}=props;const containerRef=useRef(null);const part1Ref=useRef(null);const part2Ref=useRef(null);const part3Ref=useRef(null);const[hoveredParts,setHoveredParts]=useState(new Set);const cleanupTimerRef=useRef(null);const viewBox=getViewBox(baseSVG||part1Frames[0]||part2Frames[0]||part3Frames[0])||\"0 0 300 300\";const anim1=useHoverAnimation(part1Frames.length,animationSpeed);const anim2=useHoverAnimation(part2Frames.length,animationSpeed);const anim3=useHoverAnimation(part3Frames.length,animationSpeed);const audio1=useAudio(part1Audio);const audio2=useAudio(part2Audio);const audio3=useAudio(part3Audio);const baseChildren=useMemo(()=>parseSVGChildren(baseSVG),[baseSVG]);const part1Children=useMemo(()=>parseSVGChildren(part1Frames[anim1.index]),[part1Frames,anim1.index]);const part2Children=useMemo(()=>parseSVGChildren(part2Frames[anim2.index]),[part2Frames,anim2.index]);const part3Children=useMemo(()=>parseSVGChildren(part3Frames[anim3.index]),[part3Frames,anim3.index]);const checkHoveredElements=event=>{if(!containerRef.current)return;const elementUnderCursor=document.elementFromPoint(event.clientX,event.clientY);if(!elementUnderCursor||!containerRef.current.contains(elementUnderCursor)){if(hoveredParts.size>0){setHoveredParts(new Set);anim1.stop();audio1.pauseAudio();anim2.stop();audio2.pauseAudio();anim3.stop();audio3.pauseAudio();}return;}const newHoveredParts=new Set;if(part1Ref.current&&part1Ref.current.contains(elementUnderCursor))newHoveredParts.add(\"part1\");if(part2Ref.current&&part2Ref.current.contains(elementUnderCursor))newHoveredParts.add(\"part2\");if(part3Ref.current&&part3Ref.current.contains(elementUnderCursor))newHoveredParts.add(\"part3\");if(newHoveredParts.size!==hoveredParts.size||![...hoveredParts].every(p=>newHoveredParts.has(p))){setHoveredParts(newHoveredParts);// Pauzeer audio voor parts die niet meer gehovered zijn\nif(!newHoveredParts.has(\"part1\")){anim1.stop();audio1.pauseAudio();}if(!newHoveredParts.has(\"part2\")){anim2.stop();audio2.pauseAudio();}if(!newHoveredParts.has(\"part3\")){anim3.stop();audio3.pauseAudio();}// Hervat of start audio voor nieuwe gehovered parts\nif(newHoveredParts.has(\"part1\")){anim1.start();audio1.resumeAudio();}if(newHoveredParts.has(\"part2\")){anim2.start();audio2.resumeAudio();}if(newHoveredParts.has(\"part3\")){anim3.start();audio3.resumeAudio();}}};const handleContainerMouseMove=event=>{if(cleanupTimerRef.current)clearTimeout(cleanupTimerRef.current);checkHoveredElements(event.nativeEvent);};const handleContainerMouseLeave=()=>{cleanupTimerRef.current=setTimeout(()=>{setHoveredParts(new Set);anim1.stop();audio1.pauseAudio();anim2.stop();audio2.pauseAudio();anim3.stop();audio3.pauseAudio();},50);};useEffect(()=>{return()=>{if(cleanupTimerRef.current)clearTimeout(cleanupTimerRef.current);};},[]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",position:\"relative\"},onMouseMove:handleContainerMouseMove,onMouseLeave:handleContainerMouseLeave,children:/*#__PURE__*/_jsxs(\"svg\",{width:\"100%\",height:\"100%\",viewBox:viewBox,preserveAspectRatio:\"xMidYMid meet\",style:{display:\"block\",pointerEvents:\"none\"},children:[baseChildren&&/*#__PURE__*/_jsx(\"g\",{dangerouslySetInnerHTML:{__html:baseChildren}}),part1Children&&/*#__PURE__*/_jsx(\"g\",{ref:part1Ref,style:{pointerEvents:\"all\"},dangerouslySetInnerHTML:{__html:part1Children}}),part2Children&&/*#__PURE__*/_jsx(\"g\",{ref:part2Ref,style:{pointerEvents:\"all\"},dangerouslySetInnerHTML:{__html:part2Children}}),part3Children&&/*#__PURE__*/_jsx(\"g\",{ref:part3Ref,style:{pointerEvents:\"all\"},dangerouslySetInnerHTML:{__html:part3Children}})]})});}// --- Eigenschappen in Framer ---\naddPropertyControls(LogoAnimator,{baseSVG:{type:ControlType.String,title:\"Base SVG\",defaultValue:'<svg viewBox=\"0 0 300 300\"><circle cx=\"150\" cy=\"150\" r=\"140\" fill=\"#eee\" /></svg>',displayTextArea:true},part1Frames:{type:ControlType.Array,title:\"Part 1 Frames\",control:{type:ControlType.String,displayTextArea:true},maxCount:6},part2Frames:{type:ControlType.Array,title:\"Part 2 Frames\",control:{type:ControlType.String,displayTextArea:true},maxCount:6},part3Frames:{type:ControlType.Array,title:\"Part 3 Frames\",control:{type:ControlType.String,displayTextArea:true},maxCount:6},animationSpeed:{type:ControlType.Number,title:\"Anim Speed (ms)\",defaultValue:100,min:30,max:1e3,step:10},part1Audio:{type:ControlType.File,title:\"Part 1 Audio\",allowedFileTypes:[\"mp3\",\"wav\",\"ogg\"]},part2Audio:{type:ControlType.File,title:\"Part 2 Audio\",allowedFileTypes:[\"mp3\",\"wav\",\"ogg\"]},part3Audio:{type:ControlType.File,title:\"Part 3 Audio\",allowedFileTypes:[\"mp3\",\"wav\",\"ogg\"]}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LogoAnimator\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LogoAnimator.map","// Generated by Framer (a4aa1f7)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-kZJB8 .framer-styles-preset-th5v8x:not(.rich-text-wrapper), .framer-kZJB8 .framer-styles-preset-th5v8x.rich-text-wrapper a { --framer-link-current-text-color: var(--token-3cf4d807-ff55-46a4-8c7e-2e38d18c4972, #e50051); --framer-link-current-text-decoration: none; --framer-link-hover-text-color: var(--token-3cf4d807-ff55-46a4-8c7e-2e38d18c4972, #e50051); --framer-link-hover-text-decoration: none; --framer-link-text-color: #ffffff; --framer-link-text-decoration: none; }\"];export const className=\"framer-kZJB8\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6464825)\nexport default function metadata(params,activeLocale){return{description:\"klemt\\xf3\\xf3n ontwerpt audiobelevingen voor experiences, media en film\",favicon:\"https://framerusercontent.com/assets/Hrl79o3cQkM7v9xYGcvBtWwCZp4.svg\",robots:\"max-image-preview:large\",title:\"klemt\\xf3\\xf3n - ontwerpt audiobelevingen in utrecht\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}