import{r as s,j as e}from"./react-D_B_5QVd.js";import{o as g,k as j,L as x}from"./index-QBya0NjG.js";import{m as b}from"./marked-CesSW9Du.js";import"./jszip-C9ownNzX.js";import"./react-dom-EAO2-NBm.js";import"./scheduler-DYLXRpC5.js";import"./@google-4tyssLU_.js";import"./idb-Dob3nYDb.js";const y=`const MyComponent = (props) => {
const {name, items}=props
if(!items || items.length === 0){
return
No items found for {name}
;
}
return {items.map(item=> - {item.name}
)}
}`,E=()=>{const[l,p]=s.useState(y),[o,c]=s.useState(""),[a,d]=s.useState(!1),[n,m]=s.useState(""),[f,i]=s.useState("");s.useEffect(()=>{(async()=>{if(o){const r=await b.parse(o);i(r)}else i("")})()},[o]);const u=s.useCallback(async()=>{if(!l.trim()){m("Please enter some code to format.");return}d(!0),m(""),c("");try{const t=g(l);let r="";for await(const h of t)r+=h,c(r)}catch(t){const r=t instanceof Error?t.message:"An unknown error occurred.";m(`Failed to format code: ${r}`)}finally{d(!1)}},[l]);return e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold text-slate-100 flex items-center",children:[e.jsx(j,{}),e.jsx("span",{className:"ml-3",children:"AI Code Formatter"})]}),e.jsx("p",{className:"text-slate-400 mt-1",children:"Clean up your code with AI-powered formatting, like a smart Prettier."})]}),e.jsxs("div",{className:"flex-grow flex flex-col min-h-0",children:[e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6 flex-grow min-h-0",children:[e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("label",{htmlFor:"code-input",className:"text-sm font-medium text-slate-400 mb-2",children:"Input"}),e.jsx("textarea",{id:"code-input",value:l,onChange:t=>p(t.target.value),placeholder:"Paste your unformatted code here...",className:"flex-grow p-4 bg-slate-900 border border-slate-700 rounded-md resize-none font-mono text-sm text-cyan-300 focus:ring-2 focus:ring-cyan-500 focus:outline-none"})]}),e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx("label",{className:"text-sm font-medium text-slate-400 mb-2",children:"Output"}),e.jsxs("div",{className:"flex-grow p-1 bg-slate-800/50 border border-slate-700/50 rounded-md overflow-y-auto",children:[a&&e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx(x,{})}),n&&e.jsx("p",{className:"p-4 text-red-400",children:n}),o&&!a&&e.jsx("div",{className:"prose prose-sm prose-invert max-w-none prose-pre:bg-transparent prose-pre:p-4 prose-pre:m-0 prose-code:text-cyan-300",dangerouslySetInnerHTML:{__html:f}}),!a&&!o&&!n&&e.jsx("div",{className:"text-slate-500 h-full flex items-center justify-center",children:"Formatted code will appear here."})]})]})]}),e.jsx("button",{onClick:u,disabled:a,className:"mt-4 w-full max-w-sm mx-auto flex items-center justify-center px-6 py-3 bg-cyan-500 text-slate-900 font-bold rounded-md hover:bg-cyan-400 transition-colors disabled:bg-slate-600 disabled:cursor-not-allowed",children:a?e.jsx(x,{}):"Format Code"})]})]})};export{E as CodeFormatter};
//# sourceMappingURL=CodeFormatter-CMsj5Hyg.js.map