{"version":3,"file":"AudioPlayerButton.CmeW4ZPv.mjs","names":["useRef","useState","useCallback","startTransition","useMemo"],"sources":["https:/framerusercontent.com/modules/6bP8kKMcmjyMBZ4dtW9J/fcrsECo7ITMFaZyDVjAN/AudioPlayerButton.js"],"sourcesContent":["// User request: keep all existing AudioPlayerButton behavior/controls and compact sizing, while adding squircle-style corner support on the root button (Framer-like squircle 50%) with borderRadius as fallback.\n// Play/Pause Button with Sound\n// Plays a sound on click, toggles icon between play and pause\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useRef,useState,useEffect,useMemo,useCallback,startTransition}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * AudioPlayerButton\n *\n * @framerIntrinsicWidth 180\n * @framerIntrinsicHeight 40\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight fixed\n */export default function AudioPlayerButton(props){const{label,playingLabel,autoplay=false,autoplayOnAppearance=1,syncId=\"\",audioFile=\"https://framerusercontent.com/assets/8w3IUatLX9a5JVJ6XPCVuHi94.mp3\",background,hoverBackground,textColor,iconColor,borderColor,borderWidth,borderRadius,font,style}=props;const audioRef=useRef(null);const autoplayAttemptedRef=useRef(false);const autoplayRequestIdRef=useRef(0);const sourceVersionRef=useRef(0);const sourceAppearancesRef=useRef({});const[playing,setPlaying]=useState(false);const[isHovered,setIsHovered]=useState(false);const dispatchSyncEvent=useCallback((currentTime,isPlaying)=>{if(!syncId)return;if(typeof window===\"undefined\")return;window.dispatchEvent(new CustomEvent(\"uniti-audio-sync\",{detail:{syncId,currentTime,playing:isPlaying,audioFile}}));},[syncId,audioFile]);useEffect(()=>{if(!audioRef.current)return;const audio=audioRef.current;const handleEnded=()=>startTransition(()=>setPlaying(false));audio.addEventListener(\"ended\",handleEnded);return()=>audio.removeEventListener(\"ended\",handleEnded);},[]);useEffect(()=>{const audio=audioRef.current;sourceVersionRef.current+=1;autoplayRequestIdRef.current+=1;sourceAppearancesRef.current[audioFile]=(sourceAppearancesRef.current[audioFile]??0)+1;if(audio){audio.pause();audio.currentTime=0;audio.load();}autoplayAttemptedRef.current=false;startTransition(()=>setPlaying(false));dispatchSyncEvent(0,false);},[audioFile,dispatchSyncEvent]);useEffect(()=>{if(!audioRef.current)return;const audio=audioRef.current;const emitFromAudio=()=>{const isPlaying=!audio.paused&&!audio.ended;dispatchSyncEvent(audio.currentTime,isPlaying);};const handleTimeUpdate=()=>emitFromAudio();const handlePlay=()=>emitFromAudio();const handlePause=()=>emitFromAudio();const handleEnded=()=>emitFromAudio();audio.addEventListener(\"timeupdate\",handleTimeUpdate);audio.addEventListener(\"play\",handlePlay);audio.addEventListener(\"pause\",handlePause);audio.addEventListener(\"ended\",handleEnded);emitFromAudio();return()=>{audio.removeEventListener(\"timeupdate\",handleTimeUpdate);audio.removeEventListener(\"play\",handlePlay);audio.removeEventListener(\"pause\",handlePause);audio.removeEventListener(\"ended\",handleEnded);};},[dispatchSyncEvent,audioFile]);useEffect(()=>{if(!audioRef.current)return;const audio=audioRef.current;if(playing){void audio.play().catch(()=>{startTransition(()=>setPlaying(false));});}else{audio.pause();audio.currentTime=0;}},[playing]);useEffect(()=>{if(!autoplay||autoplayAttemptedRef.current)return;if(RenderTarget.current()===RenderTarget.canvas)return;const appearanceThreshold=Math.max(1,Math.round(autoplayOnAppearance));const currentAppearance=sourceAppearancesRef.current[audioFile]??0;if(currentAppearance<appearanceThreshold)return;if(!audioRef.current)return;autoplayAttemptedRef.current=true;const sourceVersion=sourceVersionRef.current;const requestId=autoplayRequestIdRef.current+1;autoplayRequestIdRef.current=requestId;const audio=audioRef.current;const attemptAutoplay=()=>{if(sourceVersionRef.current!==sourceVersion)return;void audio.play().then(()=>{if(autoplayRequestIdRef.current!==requestId)return;if(sourceVersionRef.current!==sourceVersion)return;startTransition(()=>setPlaying(true));}).catch(()=>{if(autoplayRequestIdRef.current!==requestId)return;if(sourceVersionRef.current!==sourceVersion)return;startTransition(()=>setPlaying(false));});};if(audio.readyState>=2){attemptAutoplay();return;}const handleCanPlay=()=>{audio.removeEventListener(\"canplay\",handleCanPlay);attemptAutoplay();};audio.addEventListener(\"canplay\",handleCanPlay);return()=>{audio.removeEventListener(\"canplay\",handleCanPlay);};},[autoplay,audioFile,autoplayOnAppearance]);function handleClick(){startTransition(()=>setPlaying(p=>!p));}const buttonStyle=useMemo(()=>({...style,position:\"relative\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:4,background:isHovered?hoverBackground:background,color:textColor,borderStyle:\"solid\",borderColor,borderWidth,boxSizing:\"border-box\",borderRadius,height:40,padding:\"0 16px 0 8px\",cursor:\"pointer\",outline:\"none\",overflow:\"hidden\",transition:\"background 0.2s ease-in-out\",...font,// Non-standard squircle hints for supporting engines; borderRadius remains fallback.\n    cornerShape:\"squircle\",cornerSmoothing:\"0.5\",[\"corner-shape\"]:\"squircle\"}),[style,isHovered,background,hoverBackground,textColor,borderColor,borderWidth,borderRadius,font]);if(RenderTarget.current()===RenderTarget.thumbnail)return null;return /*#__PURE__*/_jsxs(\"button\",{style:buttonStyle,onClick:handleClick,onMouseEnter:()=>startTransition(()=>setIsHovered(true)),onMouseLeave:()=>startTransition(()=>setIsHovered(false)),\"aria-pressed\":playing,type:\"button\",children:[/*#__PURE__*/_jsx(\"span\",{style:{display:\"flex\",alignItems:\"center\"},children:playing?// Pause icon\n/*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 20 20\",fill:\"none\",\"aria-label\":\"Pause\",style:{display:\"block\"},children:[/*#__PURE__*/_jsx(\"rect\",{x:\"7\",y:\"4\",width:\"2\",height:\"14\",fill:iconColor}),/*#__PURE__*/_jsx(\"rect\",{x:\"14\",y:\"4\",width:\"2\",height:\"14\",fill:iconColor})]}):// Play icon (stroked outline triangle)\n/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-label\":\"Play\",style:{display:\"block\"},children:/*#__PURE__*/_jsx(\"path\",{d:\"M8 5.5L18 12L8 18.5Z\",fill:\"none\",stroke:iconColor,strokeWidth:\"2\"})})}),/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:600},children:playing?playingLabel:label}),/*#__PURE__*/_jsx(\"audio\",{ref:audioRef,src:audioFile,preload:\"auto\"})]});}addPropertyControls(AudioPlayerButton,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Listen Now\"},playingLabel:{type:ControlType.String,title:\"Playing Label\",defaultValue:\"Listening...\"},autoplay:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},autoplayOnAppearance:{type:ControlType.Number,title:\"Autoplay On Appearance\",defaultValue:1,min:1,step:1},syncId:{type:ControlType.String,title:\"Sync ID\",defaultValue:\"\"},audioFile:{type:ControlType.File,allowedFileTypes:[\"mp3\",\"wav\",\"ogg\"]},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#D8D9DF\"},hoverBackground:{type:ControlType.Color,title:\"Hover\",defaultValue:\"rgb(245, 245, 245)\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#00124D\"},iconColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#00124D\"},borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#EEEEEE\"},borderWidth:{type:ControlType.Number,title:\"Border Width\",defaultValue:0,min:0,max:20,step:1,unit:\"px\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:100,min:0,max:100},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"100%\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AudioPlayerButton\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"180\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AudioPlayerButton.map"],"mappings":"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"}