const fs = require('fs'); const file = 'app/(admin)/admin/settings/admin-settings-form.tsx'; let content = fs.readFileSync(file, 'utf-8'); // 1. Add icons content = content.replace( "import { TestTube, ExternalLink, RefreshCw } from 'lucide-react'", "import { TestTube, ExternalLink, RefreshCw, Shield, Brain, Mail, Wrench } from 'lucide-react'" ); // 2. Change root wrapper to 2 columns content = content.replace( '
', `
{/* Left Column */}
` ); // 3. Close left column and open right column right before AI Providers content = content.replace( ' \n \n {t(\'admin.ai.title\')}', `
{/* Right Column */}
{t('admin.ai.title')}` ); // 4. Move Email from after AI to Left Column? No, let's keep the order and just split them. // Wait, in my previous attempt I put Security + AI on left, and Email + Tools on right? // Let's just do that to be safe. // Let's put Security + AI in Left Column, and Email + Tools in Right Column. // So: // Left Column ends after AI Providers. // Right Column starts before Email. content = content.replace( ' \n \n {t(\'admin.email.title\')}', `
{/* Right Column */}
{t('admin.email.title')}` ); // Add the closing div for Right Column at the very end content = content.replace( '
\n )\n}\n', '
\n
\n )\n}\n' ); // Now let's replace all Card components with the custom design system // Security Card content = content.replace( '\n \n {t(\'admin.security.title\')}\n {t(\'admin.security.description\')}\n ', `

{t('admin.security.title')}

{t('admin.security.description')}

` ); content = content.replace(//g, '
'); content = content.replace(//g, '
'); content = content.replace(/<\/CardFooter>/g, '
'); content = content.replace( '\n
', '\n ' ); // do it 4 times content = content.replace('\n ', '\n '); content = content.replace('\n ', '\n '); content = content.replace('\n ', '\n '); // AI Card content = content.replace( '\n \n {t(\'admin.ai.title\')}\n {t(\'admin.ai.description\')}\n ', `

{t('admin.ai.title')}

{t('admin.ai.description')}

` ); // Email Card content = content.replace( '\n \n {t(\'admin.email.title\')}\n {t(\'admin.email.description\')}\n ', `

{t('admin.email.title')}

{t('admin.email.description')}

` ); // Tools Card content = content.replace( '\n \n {t(\'admin.tools.title\')}\n {t(\'admin.tools.description\')}\n ', `

{t('admin.tools.title')}

{t('admin.tools.description')}

` ); // Replace AI block styling content = content.replace( 'p-4 border rounded-lg bg-primary/5 dark:bg-primary/10', 'p-4 border border-border/50 rounded-lg bg-muted/50' ); content = content.replace( 'p-4 border rounded-lg bg-green-50/50 dark:bg-green-950/20', 'p-4 border border-border/50 rounded-lg bg-muted/50 mt-4' ); content = content.replace( 'p-4 border rounded-lg bg-blue-50/50 dark:bg-blue-950/20', 'p-4 border border-border/50 rounded-lg bg-muted/50 mt-4' ); // Also replace dark text colors inside headers content = content.replace( '

\\n 🏷️', '

\\n 🏷️' ); content = content.replace( '

\\n 🔍', '

\\n 🔍' ); content = content.replace( '

\\n 💬', '

\\n 💬' ); // Email / Search test result classes content = content.replace( /border-green-200 bg-green-50 text-green-800 dark:border-green-800 dark:bg-green-950\/30 dark:text-green-300/g, 'border-green-500/20 bg-green-500/10 text-green-600' ); content = content.replace( /border-red-200 bg-red-50 text-red-800 dark:border-red-800 dark:bg-red-950\/30 dark:text-red-300/g, 'border-red-500/20 bg-red-500/10 text-red-600' ); // CardFooter specific layout fixes since it became a div content = content.replace( '
', '
' ); // Might not match exact, let's fix manually if needed. // Wait, the CardFooter replacement was: content.replace(//g, '
'); // Then there was which became
... Need to make sure it has padding. content = content.replace( '
', '
' ); fs.writeFileSync(file, content); console.log("Success");