{"version":3,"file":"Generator.CSSxU4st.mjs","names":["React.useState","React.useRef","React.useCallback"],"sources":["https:/framerusercontent.com/modules/ejM7iQNpHmJf1AXM7HGC/uGJYGlGSJKuebalbr1Ji/Generator.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";const API_BASE_URL=\"https://gke-php-api-render-prod.mubert.com\";const TURNSTILE_SITE_KEY=\"0x4AAAAAAANuelUzf89d3OcK\";function useUniqueId(prefix=\"mubert\"){const[id]=React.useState(()=>`${prefix}_${Math.random().toString(36).slice(2)}`);return id;}export default function MubertGenerator(){const id=useUniqueId();const containerRef=React.useRef(null);const[turnstileToken,setTurnstileToken]=React.useState(null);const[turnstileWidgetId,setTurnstileWidgetId]=React.useState(null);const[status,setStatus]=React.useState(\"loading...\");const[prompt,setPrompt]=React.useState(\"Relaxing ambient music for meditation\");const[resultHtml,setResultHtml]=React.useState(\"\");const promptRef=React.useRef(null);const focusPromptAtEnd=React.useCallback(()=>{const el=promptRef.current;if(!el)return;el.focus();const len=el.value.length;el.setSelectionRange(len,len);},[]);const resetTurnstile=React.useCallback(()=>{if(turnstileWidgetId!=null&&typeof window!==\"undefined\"&&window.turnstile){window.turnstile.reset(turnstileWidgetId);setTurnstileToken(null);setStatus(\"expired, please verify again\");}},[turnstileWidgetId]);const getHeaders=React.useCallback((includeContentType=true)=>{const headers={Accept:\"application/json\"};if(includeContentType)headers[\"Content-Type\"]=\"application/json\";if(turnstileToken)headers[\"cloudflare-token\"]=turnstileToken;return headers;},[turnstileToken]);const hasAuthToken=()=>typeof document!==\"undefined\"&&document.cookie.split(\";\").some(c=>c.trim().startsWith(\"auth-token=\"));const ensureSession=React.useCallback(async()=>{if(hasAuthToken())return true;try{const response=await fetch(`${API_BASE_URL}/api/v1/public/users/me/start`,{method:\"GET\",headers:getHeaders(true),credentials:\"include\"});return response.ok;}catch{return false;}},[getHeaders]);// Load Turnstile script once, then render widget per component instance\nReact.useEffect(()=>{if(typeof window===\"undefined\")return;const existing=document.querySelector('script[data-turnstile=\"1\"]');const onReady=()=>{if(!containerRef.current)return;if(!window.turnstile)return;setStatus(\"rendering widget...\");try{const wid=window.turnstile.render(containerRef.current,{sitekey:TURNSTILE_SITE_KEY,appearance:\"interaction-only\",size:\"invisible\",callback:token=>{setTurnstileToken(token);setStatus(\"verified\");focusPromptAtEnd();},\"expired-callback\":()=>{setTurnstileToken(null);setStatus(\"expired, please verify again\");},\"error-callback\":error=>{setTurnstileToken(null);setStatus(\"error: \"+(error||\"unknown\"));}});setTurnstileWidgetId(wid);setStatus(\"widget rendered, waiting for verification...\");}catch(e){setStatus(\"render error: \"+(e?.message||\"unknown\"));}};// If Turnstile already loaded\nif(window.turnstile){onReady();return;}// If script exists but not ready yet\nif(existing){const timer=setInterval(()=>{if(window.turnstile){clearInterval(timer);onReady();}},100);return()=>clearInterval(timer);}// Inject script\nconst s=document.createElement(\"script\");s.src=\"https://challenges.cloudflare.com/turnstile/v0/api.js\";s.async=true;s.defer=true;s.dataset.turnstile=\"1\";s.onload=()=>onReady();document.body.appendChild(s);// no cleanup: you generally keep Turnstile loaded\n},[focusPromptAtEnd]);const generateTrack=React.useCallback(async()=>{if(!turnstileToken){setResultHtml(\"Error: Please complete the Cloudflare verification first\");return;}setResultHtml(\"Starting session...\");const sessionOk=await ensureSession();if(!sessionOk){setResultHtml(\"Error: Failed to start session\");resetTurnstile();return;}setResultHtml(\"Generating...\");try{const body={prompt,duration:60};const response=await fetch(`${API_BASE_URL}/api/v1/public/tracks`,{method:\"POST\",headers:getHeaders(true),credentials:\"include\",body:JSON.stringify(body)});const data=await response.json();if(data?.data?.session_id){const trackUrl=`https://mubert.com/render/tracks/${data.data.session_id}`;const autoRedirectUrl=`https://mubert.com/render`;setResultHtml(`Track URL: <a href=\"${trackUrl}\" target=\"_blank\" rel=\"noopener noreferrer\">${trackUrl}</a>`);// open render page in new tab (if you want auto)\nwindow.open(autoRedirectUrl,\"_blank\",\"noopener,noreferrer\");}else{setResultHtml(`<pre>${escapeHtml(JSON.stringify(data,null,2))}</pre>`);resetTurnstile();}}catch(e){setResultHtml(\"Error: \"+(e?.message||\"unknown\"));resetTurnstile();}},[ensureSession,getHeaders,prompt,resetTurnstile,turnstileToken]);return /*#__PURE__*/_jsxs(\"div\",{style:styles.widget,children:[/*#__PURE__*/_jsx(\"style\",{children:css}),/*#__PURE__*/_jsxs(\"div\",{style:styles.form,children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"none\"},children:/*#__PURE__*/_jsx(\"input\",{type:\"radio\",name:`generationSource_${id}`,defaultChecked:true})}),/*#__PURE__*/_jsx(\"div\",{style:styles.promptSection,children:/*#__PURE__*/_jsx(\"textarea\",{ref:promptRef,value:prompt,onChange:e=>setPrompt(e.target.value),rows:3,style:styles.textarea})}),/*#__PURE__*/_jsx(\"div\",{ref:containerRef}),/*#__PURE__*/_jsx(\"button\",{style:styles.button,onClick:generateTrack,children:\"Generate Free Track\"}),/*#__PURE__*/_jsx(\"div\",{style:styles.status,children:`Cloudflare: ${status}`})]}),/*#__PURE__*/_jsx(\"div\",{style:styles.result,dangerouslySetInnerHTML:{__html:resultHtml}})]});}function escapeHtml(s){return s.replaceAll(\"&\",\"&amp;\").replaceAll(\"<\",\"&lt;\").replaceAll(\">\",\"&gt;\").replaceAll('\"',\"&quot;\").replaceAll(\"'\",\"&#039;\");}const css=`\n/* Optional: if you want it closer to your WP styling */\n`;const styles={widget:{width:\"100%\",maxWidth:720,margin:\"40px 0\",textAlign:\"left\"},form:{display:\"block\",background:\"var(--white, #fff)\",padding:20,borderRadius:10,boxShadow:\"0 4px 25.44px 0 rgba(85, 93, 255, 0.30)\",position:\"relative\"},promptSection:{},textarea:{background:\"none\",border:\"none\",outline:\"none\",fontSize:18,fontFamily:\"inherit\",color:\"var(--dark, #111)\",fontWeight:500,width:\"100%\",height:60,resize:\"none\"},button:{background:\"#555DFF\",color:\"var(--white, #fff)\",padding:\"10px 15px\",fontSize:16,border:\"none\",borderRadius:10,fontWeight:500,display:\"inline-flex\",gap:5,cursor:\"pointer\",transition:\"0.2s ease all\",position:\"absolute\",right:20,bottom:20},status:{fontSize:12,fontFamily:\"monospace\",marginTop:8,color:\"#999999\"},result:{marginTop:14,wordBreak:\"break-word\"}};function useTheme(){throw new Error(\"Function not implemented.\");}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MubertGenerator\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Generator.map"],"mappings":"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"}