\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 './styles/global.css';\n\nReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(\n \n \n \n \n \n);","src/App.tsx":"import React from 'react';\nimport { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\nimport Home from './pages/Home';\nimport './styles/global.css';\n\nfunction App() {\n return (\n \n
\n \n \n \n
\n
\n );\n}\n\nexport default App;\n","src/pages/Home.tsx":"import React from 'react';\nimport FullScreenRedBackground from '../components/FullScreenRedBackground';\n\nconst Home: React.FC = () => {\n return (\n
\n \n
\n );\n};\n\nexport default Home;\n","src/components/FullScreenRedBackground.tsx":"import React from 'react';\n\nconst FullScreenRedBackground: React.FC = () => {\n return (\n
\n

Hello World

\n
\n );\n};\n\nexport default FullScreenRedBackground;\n","src/styles/global.css":"/* Global Styles */\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\nhtml, body, #root {\n height: 100%;\n margin: 0;\n padding: 0;\n font-family: 'Inter', sans-serif;\n}\n\nbody {\n background-color: #FF0000;\n color: #FFFFFF;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.full-screen {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100vh;\n text-align: center;\n}\n"}; // Raw Source: { path: content } function resolvePath(base, relative) { if (!relative.startsWith('.')) return relative; // NPM package or absolute const stack = base.split('/'); stack.pop(); // Remove current filename from base 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) { // Try exact match if (window.__SOURCES__[path]) return { content: window.__SOURCES__[path], finalPath: path }; // Try extensions 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 }; } // Try index files 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 = '') { // 1. External Libraries 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; if (path === 'lucide-react') return window.lucide; // Router Shim: Force HashRouter to avoid iframe URL issues if (path === 'react-router-dom') { return { ...window.ReactRouterDOM, BrowserRouter: window.ReactRouterDOM.HashRouter }; } // 2. Internal Files const resolvedPath = resolvePath(base, path); const fileInfo = getFileContent(resolvedPath); if (!fileInfo) { console.warn('Module not found:', path, 'Resolved:', resolvedPath); return {}; } const { content, finalPath } = fileInfo; if (window.__MODULES__[finalPath]) { return window.__MODULES__[finalPath].exports; } // 3. Compile & Execute // CSS Handling if (finalPath.endsWith('.css')) { const style = document.createElement('style'); style.textContent = content; document.head.appendChild(style); window.__MODULES__[finalPath] = { exports: {} }; return {}; } // JSON Handling if (finalPath.endsWith('.json')) { try { const json = JSON.parse(content); window.__MODULES__[finalPath] = { exports: json }; return json; } catch(e) { console.error('JSON Parse Error', e); } } // HTML Handling (Prevent Babel Crash) if (finalPath.endsWith('.html')) { window.__MODULES__[finalPath] = { exports: content }; return content; } // JS/TS Handling try { // Apply correct presets for TSX/TS/JS const presets = [['env', { modules: 'commonjs' }], 'react']; if (finalPath.endsWith('.ts') || finalPath.endsWith('.tsx')) { presets.push('typescript'); } const transformed = Babel.transform(content, { presets: presets, filename: finalPath }).code; const module = { exports: {} }; const wrapper = new Function('module', 'exports', 'require', transformed); // Execute wrapper(module, module.exports, (p) => window.require(p, finalPath)); // Cache window.__MODULES__[finalPath] = module; return module.exports; } catch (e) { console.error('Compilation Error in ' + finalPath, e); window.onerror('Failed to compile ' + finalPath + ': ' + e.message, finalPath, 0, 0, e); throw e; } }; // --- BOOTSTRAP --- window.onload = function() { try { const entry = "src/main.tsx"; if (entry) { console.log('Bootstrapping from:', entry); window.require(entry); } else { console.error('No entry file found (main.tsx/index.tsx)'); document.body.innerHTML = '

No Entry File Found

The builder could not locate src/main.tsx or src/index.tsx. Please check the file list.

'; } } catch (e) { console.error('Bootstrap Error:', e); window.onerror(e.message, '', 0, 0, e); } };