1import{j as t}from"./index-CxpclvVk.js";import{b as l}from"./vendor-react-DDV1eynV.js";import"./vendor-firebase-DVNX9Yd2.js";import"./vendor-stripe-CZbIad6m.js";const A=[{category:"Landscapes",examples:["A serene mountain lake at sunset with snow-capped peaks","A magical forest with bioluminescent plants and fireflies","A coastal cliff overlooking a stormy ocean"]},{category:"Characters",examples:["A wise old wizard in flowing robes studying ancient books","A futuristic cyborg warrior with glowing cybernetic enhancements","A cute cartoon dragon having a tea party"]},{category:"Abstract",examples:["Flowing ribbons of light in vibrant colors dancing through space","A surreal dreamscape with floating islands and crystal formations","An abstract representation of joy using shapes and colors"]}],G=()=>{const[d,b]=l.useState(""),[x,v]=l.useState(null),[p,w]=l.useState(!1),[h,c]=l.useState(0),[B,u]=l.useState(""),[C,D]=l.useState([]),[y,g]=l.useState(!1),N="***REMOVED***",a=o=>{const r=new Date().toLocaleTimeString();D(i=>[`${r}: ${o}`,...i.slice(0,9)])},j=async()=>{if(!d.trim()){alert("Please enter a prompt");return}try{w(!0),c(0),u("Initializing request..."),a("Starting image generation process");const o=await fetch("https://api.replicate.com/v1/predictions",{method:"POST",headers:{Authorization:`Token ${N}`,"Content-Type":"application/json"},body:JSON.stringify({version:"ac732df83cea7fff18b8472768c88ad041fa750ff7682a21affe81863cbe77e4",input:{prompt:d,negative_prompt:"blurry, bad art, dark, lowres, text, watermark, signature",width:768,height:768,num_inference_steps:30,guidance_scale:7.5}})});if(!o.ok){const s=await o.json();throw a(`API Error Details: ${JSON.stringify(s)}`),new Error(`HTTP error! status: ${o.status}`)}const r=await o.json();a(`Prediction started with ID: ${r.id}`),c(30),u("Processing image...");let i=!1,n=0;const k=60;for(;!i&&n<k;){n++;const s=await fetch(`https://api.replicate.com/v1/predictions/${r.id}`,{headers:{Authorization:`Token ${N}`}});if(!s.ok){const f=await s.json();throw a(`Polling Error: ${s.status} - ${JSON.stringify(f)}`),new Error(`Polling error! status: ${s.status}`)}const m=await s.json();if(a(`Status check ${n}: ${m.status}`),m.status==="succeeded"){i=!0,c(100),u("Complete!"),v(m.output[0]),a("Image generation completed successfully");break}else if(m.status==="failed")throw new Error(m.error||"Image generation failed");c(30+Math.min(n,60)),u(`Processing image... (${n}s)`),await new Promise(f=>setTimeout(f,1e3))}if(!i)throw new Error("Timeout - Image generation took too long")}catch(o){console.error("API Error:",o),a(`Error: ${o.message}`),alert(`Failed to generate image: ${o.message}. Please check your API token and try again.`)}finally{w(!1),h!==100&&(c(0),u(""))}};return t.jsxDEV("div",{style:e.container,children:[t.jsxDEV("div",{style:e.contentContainer,children:[t.jsxDEV("div",{style:e.headerContainer,children:[t.jsxDEV("h1",{style:e.headerTitle,children:"AI IMAGE GENERATOR"},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:163,columnNumber:11},void 0),t.jsxDEV("p",{style:e.headerSubtitle,children:"Transform your ideas into art"},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:164,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:162,columnNumber:9},void 0),t.jsxDEV("div",{style:e.promptContainer,children:[t.jsxDEV("div",{style:e.promptHeader,children:[t.jsxDEV("h2",{style:e.promptTitle,children:"DESCRIBE YOUR IMAGE"},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:169,columnNumber:13},void 0),t.jsxDEV("button",{onClick:()=>g(!0),style:e.helpButton,children:"NEED IDEAS?"},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:170,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:168,columnNumber:11},void 0),t.jsxDEV("textarea",{value:d,onChange:o=>b(o.target.value),placeholder:"Be specific! Describe the scene, style, mood, colors...",style:e.input},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:178,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:167,columnNumber:9},void 0),t.jsxDEV("button",{onClick:j,disabled:p||!d,style:{...e.generateButton,...p||!d?e.generateButtonDisabled:{}},children:p?"Generating...":"Create Image"},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:186,columnNumber:9},void 0),p&&t.jsxDEV("div",{style:e.progressContainer,children:[t.jsxDEV("div",{style:e.progressBar,children:t.jsxDEV("div",{style:{...e.progressFill,width:`${h}%`}},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:200,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:199,columnNumber:13},void 0),t.jsxDEV("p",{style:e.statusText,children:B},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:207,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:198,columnNumber:11},void 0),x&&t.jsxDEV("div",{style:e.imageContainer,children:t.jsxDEV("img",{src:x,alt:"Generated",style:e.generatedImage},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:213,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:212,columnNumber:11},void 0),t.jsxDEV("div",{style:e.logsContainer,children:[t.jsxDEV("h3",{style:e.logsTitle,children:"Generation Log"},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:218,columnNumber:11},void 0),t.jsxDEV("div",{style:e.logsScroll,children:C.map((o,r)=>
1t.jsxDEV("p",{style:e.logText,children:o},r,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:221,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:219,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:217,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:161,columnNumber:7},void 0),y&&t.jsxDEV("div",{style:e.modalOverlay,children:t.jsxDEV("div",{style:e.modalContent,children:[t.jsxDEV("h2",{style:e.modalTitle,children:"Prompt Ideas"},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:232,columnNumber:13},void 0),t.jsxDEV("div",{style:e.suggestionsContainer,children:A.map((o,r)=>t.jsxDEV("div",{style:e.categoryContainer,children:[t.jsxDEV("h3",{style:e.categoryTitle,children:o.category},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:237,columnNumber:19},void 0),o.examples.map((i,n)=>t.jsxDEV("button",{style:e.exampleButton,onClick:()=>{b(i),g(!1)},children:i},n,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:239,columnNumber:21},void 0))]},r,!0,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:236,columnNumber:17},void 0))},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:234,columnNumber:13},void 0),t.jsxDEV("button",{style:e.closeButton,onClick:()=>g(!1),children:"Close"},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:254,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:231,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:230,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/wuwtechnologies/Desktop/ReactNativeBuildAndroid/BuildCc1/react-app/src/ImageGenerator.web.jsx",lineNumber:160,columnNumber:5},void 0)},e={container:{flex:1,backgroundColor:"#f5f5f5",minHeight:"100vh",padding:"20px"},contentContainer:{maxWidth:"800px",margin:"0 auto"},headerContainer:{textAlign:"center",marginBottom:"30px"},headerTitle:{fontSize:"28px",fontWeight:"bold",color:"#1a1a1a",marginBottom:"8px",fontFamily:"Oswald-Medium, sans-serif"},headerSubtitle:{fontSize:"16px",color:"#666",fontFamily:"Roboto-Regular, sans-serif"},promptContainer:{marginBottom:"20px"},promptHeader:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"10px"},promptTitle:{fontSize:"18px",fontWeight:"600",color:"#1a1a1a",fontFamily:"Oswald-Medium, sans-serif",margin:0},helpButton:{backgroundColor:"rgba(0, 122, 255, 0.1)",padding:"6px 12px",borderRadius:"15px",border:"none",color:"#007AFF",cursor:"pointer",fontSize:"14px",fontWeight:"500",fontFamily:"Oswald-Medium, sans-serif"},input:{width:"100%",minHeight:"100px",padding:"15px",fontSize:"16px",color:"#1a1a1a",border:"1px solid #ddd",borderRadius:"12px",backgroundColor:"#fff",resize:"vertical"},generateButton:{width:"100%",padding:"16px",fontSize:"18px",fontWeight:"600",color:"#fff",backgroundColor:"#007AFF",border:"none",borderRadius:"12px",cursor:"pointer",marginBottom:"20px"},generateButtonDisabled:{backgroundColor:"#999",cursor:"not-allowed"},progressContainer:{marginTop:"20px",textAlign:"center"},progressBar:{width:"100%",height:"8px",backgroundColor:"#ddd",borderRadius:"4px",overflow:"hidden"},progressFill:{height:"100%",backgroundColor:"#007AFF",transition:"width 0.3s ease"},statusText:{marginTop:"10px",color:"#666",fontSize:"14px"},imageContainer:{marginTop:"20px",backgroundColor:"#fff",borderRadius:"12px",padding:"10px",boxShadow:"0 2px 4px rgba(0,0,0,0.1)"},generatedImage:{width:"100%",borderRadius:"8px"},logsContainer:{marginTop:"20px",backgroundColor:"#fff",borderRadius:"12px",padding:"15px",maxHeight:"200px",boxShadow:"0 2px 4px rgba(0,0,0,0.1)"},logsTitle:{fontSize:"16px",fontWeight:"600",marginBottom:"10px",color:"#1a1a1a"},logsScroll:{maxHeight:"150px",overflowY:"auto"},logText:{fontSize:"12px",color:"#666",marginBottom:"5px",fontFamily:"monospace"},modalOverlay:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0,0,0,0.5)",display:"flex",justifyContent:"center",alignItems:"center",zIndex:1e3},modalContent:{backgroundColor:"#fff",borderRadius:"20px",padding:"20px",maxWidth:"90%",maxHeight:"80vh",overflow:"auto"},modalTitle:{fontSize:"22px",fontWeight:"bold",color:"#1a1a1a",marginBottom:"20px",textAlign:"center"},suggestionsContainer:{maxHeight:"400px",overflowY:"auto"},categoryContainer:{marginBottom:"20px"},categoryTitle:{fontSize:"18px",fontWeight:"600",color:"#1a1a1a",marginBottom:"10px"},exampleButton:{width:"100%",padding:"12px",marginBottom:"8px",backgroundColor:"#f0f0f0",border:"none",borderRadius:"8px",textAlign:"left",cursor:"pointer",color:"#333",fontSize:"14px"},closeButton:{width:"100%",padding:"15px",backgroundColor:"#007AFF",color:"#fff",border:"none",borderRadius:"12px",fontSize:"16px",fontWeight:"600",cursor:"pointer",marginTop:"20px"}};
1export{G as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.