\n\n","src/main.tsx":"import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { BrowserRouter as Router } from 'react-router-dom';\nimport App from './App';\nimport './index.css';\n\nconst rootElement = document.getElementById('root');\n\nif (rootElement) {\n const root = ReactDOM.createRoot(rootElement);\n root.render(\n \n \n \n \n \n );\n}\n","src/App.tsx":"import React from 'react';\nimport { BrowserRouter as Router, Route, Routes } from 'react-router-dom';\nimport Navigation from './components/Navigation';\nimport Home from './pages/Home';\n\nconst App: React.FC = () => {\n return (\n \n
\n \n \n } />\n \n
\n
\n );\n};\n\nexport default App;\n","src/pages/Home.tsx":"import React from 'react';\nimport 'tailwindcss/tailwind.css';\n\nconst Home: React.FC = () => {\n return (\n
\n

به صفحه اصلی خوش آمدید

\n
\n );\n};\n\nexport default Home;\n","src/components/Home.tsx":"import React from 'react';\n\nconst HomeComponent: React.FC = () => {\n return (\n
\n

Hello World

\n
\n );\n};\n\nexport default HomeComponent;\n","src/index.css":"body {\n @apply bg-green-500;\n}\n","src/routes.tsx":"import React from 'react';\nimport { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\nimport Home from './pages/Home';\n\nconst Routes: React.FC = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport default Routes;\n","src/pages/TranslationPage.tsx":"import React, { useState } from 'react';\nimport { ArrowRight } from 'lucide-react';\n\nconst TranslationPage: React.FC = () => {\n const [inputText, setInputText] = useState('');\n const [translatedText, setTranslatedText] = useState('');\n\n const handleTranslate = () => {\n // Simulate translation logic\n setTranslatedText('سلام دنیا'); // Example translation for \"Hello World\"\n };\n\n return (\n
\n

Translation Page

\n
\n \n setInputText(e.target.value)}\n className=\"shadow appearance-none border rounded w-full py-2 px-3 text-[#333333] leading-tight focus:outline-none focus:shadow-outline\"\n />\n \n Translate\n \n \n
\n \n \n {translatedText}\n
\n
\n
\n \n );\n};\n\nexport default TranslationPage;\n","src/components/Navigation.tsx":"import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Home } from 'lucide-react';\n\nconst Navigation: React.FC = () => {\n return (\n \n );\n};\n\nexport default Navigation;\n"}; function resolvePath(base, relative) { if (!relative.startsWith('.')) return relative; const stack = base.split('/'); stack.pop(); const parts = relative.split('/'); for (let i = 0; i < parts.length; i++) { if (parts[i] === '.') continue; if (parts[i] === '..') stack.pop(); else stack.push(parts[i]); } return stack.join('/'); } function getFileContent(path) { if (window.__SOURCES__[path]) return { content: window.__SOURCES__[path], finalPath: path }; const extensions = ['.tsx', '.ts', '.jsx', '.js', '.css', '.json']; for (let ext of extensions) { if (window.__SOURCES__[path + ext]) return { content: window.__SOURCES__[path + ext], finalPath: path + ext }; } for (let ext of extensions) { if (window.__SOURCES__[path + '/index' + ext]) return { content: window.__SOURCES__[path + '/index' + ext], finalPath: path + '/index' + ext }; } return null; } window.require = function(path, base = '') { // --- BUILT-INS --- if (path === 'react') return window.React; if (path === 'react-dom') return window.ReactDOM; if (path === 'react-dom/client') return window.ReactDOM; if (path === '@supabase/supabase-js') return window.supabase || createSafeProxy({}, '@supabase/supabase-js'); if (path === 'lucide-react') return window.lucide || createSafeProxy({}, 'lucide-react'); if (path === 'react-router-dom' || path === 'react-router') { const rrd = window.ReactRouterDOM; if (rrd) { // We are in an iframe, BrowserRouter will not work without server config. Force HashRouter. rrd.BrowserRouter = rrd.HashRouter; return rrd; } return createSafeProxy({}, path); } const resolvedPath = resolvePath(base, path); const fileInfo = getFileContent(resolvedPath); if (!fileInfo) { console.warn('Module not found:', path, 'Resolved:', resolvedPath); return createSafeProxy({}, path); } const { content, finalPath } = fileInfo; if (window.__MODULES__[finalPath]) return window.__MODULES__[finalPath].exports; if (finalPath.endsWith('.css')) { const style = document.createElement('style'); style.textContent = content; document.head.appendChild(style); window.__MODULES__[finalPath] = { exports: {} }; return {}; } if (finalPath.endsWith('.json')) { try { const json = JSON.parse(content); window.__MODULES__[finalPath] = { exports: json }; return json; } catch(e) {} } const module = { exports: {} }; window.__MODULES__[finalPath] = module; try { const presets = [['env', { modules: 'commonjs' }], 'react']; if (finalPath.endsWith('.ts') || finalPath.endsWith('.tsx')) { presets.push('typescript'); } const transformed = Babel.transform(content, { presets, filename: finalPath }).code; const wrapper = new Function('module', 'exports', 'require', transformed); wrapper(module, module.exports, (p) => window.require(p, finalPath)); return module.exports; } catch (e) { console.error('Compilation Error in ' + finalPath, e); const ErrorComponent = () => window.React.createElement('div', { style: { color: 'red', padding: 10, background: '#fee2e2', border: '1px solid red' } }, 'Error compiling ' + finalPath + ': ' + e.message); window.__MODULES__[finalPath].exports = { default: ErrorComponent, ErrorComponent }; return window.__MODULES__[finalPath].exports; } }; // --- BOOTSTRAP --- (function() { document.addEventListener('DOMContentLoaded', function() { console.info('[Rafiei Builder] DOMContentLoaded fired. Bootstrapping preview...'); try { const rootEl = document.getElementById('root'); if (!rootEl) { throw new Error("Bootstrap failed: #root element not found in the preview document."); } const entry = "src/main.tsx"; if (entry && window.__SOURCES__[entry]) { console.info('[Rafiei Builder] Executing entry file: ' + entry); window.require(entry); console.info('[Rafiei Builder] Entry file execution complete.'); } else { console.warn('[Rafiei Builder] No valid entry file found to execute. Entry path: "' + entry + '"'); rootEl.innerHTML = '
Preview boot failed: Entry file not found.
'; } } catch (e) { console.error('[Rafiei Builder] Bootstrap Error:', e); } }); })();