CoolFace
Apppublic

BoobyBoobs/quick-bot-627

sourceHugging Faceupdated 11mo agoView on Hugging Face
0likes
app.py1781 linesDownload Raw Back to root
1=== index.html ===2<!DOCTYPE html>3<html lang="en">4<head>5    <meta charset="UTF-8">6    <meta name="viewport" content="width=device-width, initial-scale=1.0">7    <title>AnyCoder - AI Code Generation IDE</title>8    <link rel="stylesheet" href="assets/css/codemirror.css">9    <link rel="stylesheet" href="assets/css/monokai.css">10    <link rel="stylesheet" href="assets/css/styles.css">11    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">12</head>13<body>14    <div class="app-container">15        <header class="header">16            <div class="header-content">17                <h1><i class="fas fa-rocket"></i> AnyCoder</h1>18                <p>Uncensored AI Code Generation IDE with Conversational Assistant</p>19                <p>Built with <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank">anycoder</a></p>20            </div>21        </header>22 23        <main class="main-content">24            <div class="tabs">25                <button class="tab-button active" data-tab="editor">26                    <i class="fas fa-code"></i> Code Editor27                </button>28                <button class="tab-button" data-tab="assistant">29                    <i class="fas fa-robot"></i> AI Assistant30                </button>31                <button class="tab-button" data-tab="files">32                    <i class="fas fa-folder"></i> Project Files33                </button>34                <button class="tab-button" data-tab="settings">35                    <i class="fas fa-cog"></i> Settings36                </button>37            </div>38 39            <div class="tab-content">40                <!-- Code Editor Tab -->41                <div id="editor" class="tab-panel active">42                    <div class="editor-layout">43                        <aside class="sidebar">44                            <div class="file-manager">45                                <h3><i class="fas fa-folder-open"></i> File Manager</h3>46                                <div class="file-controls">47                                    <input type="text" id="newFileName" placeholder="filename.py">48                                    <button id="createFileBtn"><i class="fas fa-plus"></i> New</button>49                                    <button id="saveFileBtn"><i class="fas fa-save"></i> Save</button>50                                    <button id="deleteFileBtn"><i class="fas fa-trash"></i> Delete</button>51                                </div>52                                <select id="fileList" class="file-select">53                                    <option value="">Select a file...</option>54                                </select>55                            </div>56                            57                            <div class="settings-panel">58                                <h3><i class="fas fa-sliders-h"></i> Settings</h3>59                                <div class="control-group">60                                    <label for="languageSelect">Language:</label>61                                    <select id="languageSelect">62                                        <option value="python">Python</option>63                                        <option value="javascript">JavaScript</option>64                                        <option value="html">HTML</option>65                                        <option value="css">CSS</option>66                                        <option value="xml">XML</option>67                                    </select>68                                </div>69                                <div class="control-group">70                                    <button id="runCodeBtn" class="run-btn">71                                        <i class="fas fa-play"></i> Run Code72                                    </button>73                                    <button id="clearEditorBtn" class="clear-btn">74                                        <i class="fas fa-eraser"></i> Clear75                                    </button>76                                </div>77                            </div>78                        </aside>79 80                        <section class="editor-section">81                            <div class="editor-header">82                                <h3><i class="fas fa-edit"></i> Code Editor</h3>83                            </div>84                            <div class="editor-container">85                                <textarea id="codeEditor"></textarea>86                            </div>87                            88                            <div class="output-section">89                                <div class="output-header">90                                    <h3><i class="fas fa-terminal"></i> Output</h3>91                                    <button id="clearOutputBtn" class="clear-btn">92                                        <i class="fas fa-eraser"></i> Clear93                                    </button>94                                </div>95                                <div id="outputDisplay" class="output-display"></div>96                            </div>97                        </section>98                    </div>99                </div>100 101                <!-- AI Assistant Tab -->102                <div id="assistant" class="tab-panel">103                    <div class="assistant-layout">104                        <div class="chat-section">105                            <div class="chat-header">106                                <h3><i class="fas fa-comments"></i> Chat with AI</h3>107                                <button id="clearChatBtn" class="clear-btn">108                                    <i class="fas fa-trash"></i> Clear Chat109                                </button>110                            </div>111                            <div id="chatMessages" class="chat-messages"></div>112                            <div class="chat-input-section">113                                <textarea id="chatInput" placeholder="Ask for code help..."></textarea>114                                <button id="sendChatBtn" class="send-btn">115                                    <i class="fas fa-paper-plane"></i> Send116                                </button>117                            </div>118                        </div>119 120                        <div class="tools-section">121                            <div class="quick-actions">122                                <h3><i class="fas fa-magic"></i> Quick Actions</h3>123                                <div class="template-controls">124                                    <select id="templateSelect">125                                        <option value="react">React Component</option>126                                        <option value="fastapi">FastAPI</option>127                                        <option value="python">Python Function</option>128                                        <option value="express">Express Server</option>129                                        <option value="gradio">Gradio App</option>130                                    </select>131                                    <button id="useTemplateBtn" class="template-btn">132                                        <i class="fas fa-file-code"></i> Use Template133                                    </button>134                                </div>135                            </div>136 137                            <div class="ai-tools">138                                <h3><i class="fas fa-tools"></i> AI Tools</h3>139                                <div class="tool-buttons">140                                    <button id="explainBtn" class="tool-btn">141                                        <i class="fas fa-book"></i> Explain Code142                                    </button>143                                    <button id="debugBtn" class="tool-btn">144                                        <i class="fas fa-bug"></i> Debug Code145                                    </button>146                                    <button id="optimizeBtn" class="tool-btn">147                                        <i class="fas fa-tachometer-alt"></i> Optimize Code148                                    </button>149                                </div>150                            </div>151 152                            <div class="history-section">153                                <h3><i class="fas fa-history"></i> Recent History</h3>154                                <div id="historyDisplay" class="history-display"></div>155                            </div>156                        </div>157                    </div>158                </div>159 160                <!-- Project Files Tab -->161                <div id="files" class="tab-panel">162                    <div class="files-layout">163                        <div class="files-section">164                            <div class="files-header">165                                <h3><i class="fas fa-folder-tree"></i> All Files</h3>166                                <button id="refreshFilesBtn" class="refresh-btn">167                                    <i class="fas fa-sync"></i> Refresh168                                </button>169                            </div>170                            <div class="files-table-container">171                                <table id="filesTable" class="files-table">172                                    <thead>173                                        <tr>174                                            <th>Filename</th>175                                            <th>Size</th>176                                            <th>Type</th>177                                            <th>Modified</th>178                                            <th>Actions</th>179                                        </tr>180                                    </thead>181                                    <tbody id="filesTableBody">182                                    </tbody>183                                </table>184                            </div>185                        </div>186 187                        <div class="stats-section">188                            <div class="stats-card">189                                <h3><i class="fas fa-chart-bar"></i> Project Statistics</h3>190                                <div id="statsDisplay" class="stats-display"></div>191                            </div>192 193                            <div class="export-section">194                                <h3><i class="fas fa-download"></i> Export Project</h3>195                                <div class="export-controls">196                                    <select id="exportFormat">197                                        <option value="json">JSON</option>198                                        <option value="zip">ZIP (Simulated)</option>199                                    </select>200                                    <button id="exportBtn" class="export-btn">201                                        <i class="fas fa-file-export"></i> Export202                                    </button>203                                </div>204                            </div>205 206                            <div class="execution-history">207                                <h3><i class="fas fa-terminal"></i> Execution History</h3>208                                <div id="execHistory" class="exec-history"></div>209                            </div>210                        </div>211                    </div>212                </div>213 214                <!-- Settings Tab -->215                <div id="settings" class="tab-panel">216                    <div class="settings-layout">217                        <div class="settings-section">218                            <h3><i class="fas fa-palette"></i> Theme Settings</h3>219                            <div class="setting-group">220                                <label for="themeSelect">Theme:</label>221                                <select id="themeSelect">222                                    <option value="dark">Dark</option>223                                    <option value="light">Light</option>224                                    <option value="monokai">Monokai</option>225                                </select>226                            </div>227                        </div>228 229                        <div class="settings-section">230                            <h3><i class="fas fa-text-height"></i> Editor Settings</h3>231                            <div class="setting-group">232                                <label for="fontSize">Font Size:</label>233                                <input type="range" id="fontSize" min="10" max="24" value="14">234                                <span id="fontSizeValue">14px</span>235                            </div>236                            <div class="setting-group">237                                <label for="tabSize">Tab Size:</label>238                                <input type="range" id="tabSize" min="2" max="8" value="4">239                                <span id="tabSizeValue">4</span>240                            </div>241                            <div class="setting-group">242                                <label>243                                    <input type="checkbox" id="lineNumbers" checked> Show Line Numbers244                                </label>245                            </div>246                            <div class="setting-group">247                                <label>248                                    <input type="checkbox" id="wordWrap"> Word Wrap249                                </label>250                            </div>251                        </div>252 253                        <div class="settings-section">254                            <h3><i class="fas fa-robot"></i> AI Settings</h3>255                            <div class="setting-group">256                                <label for="aiCreativity">AI Creativity:</label>257                                <input type="range" id="aiCreativity" min="0.1" max="1.0" step="0.1" value="0.7">258                                <span id="aiCreativityValue">0.7</span>259                            </div>260                            <div class="setting-group">261                                <label for="maxTokens">Max Response Length:</label>262                                <input type="range" id="maxTokens" min="100" max="2000" step="100" value="1000">263                                <span id="maxTokensValue">1000</span>264                            </div>265                        </div>266 267                        <div class="settings-section">268                            <h3><i class="fas fa-undo"></i> Reset Options</h3>269                            <div class="reset-buttons">270                                <button id="resetSettingsBtn" class="reset-btn">271                                    <i class="fas fa-undo"></i> Reset Settings272                                </button>273                                <button id="clearAllBtn" class="clear-all-btn">274                                    <i class="fas fa-trash-alt"></i> Clear All Data275                                </button>276                            </div>277                        </div>278                    </div>279                </div>280            </div>281        </main>282    </div>283 284    <script src="assets/js/codemirror.js"></script>285    <script src="assets/js/mode/python/python.js"></script>286    <script src="assets/js/mode/javascript/javascript.js"></script>287    <script src="assets/js/mode/xml/xml.js"></script>288    <script src="assets/js/mode/css/css.js"></script>289    <script src="assets/js/mode/htmlmixed/htmlmixed.js"></script>290    <script src="assets/js/app.js"></script>291</body>292</html>293 294=== assets/css/styles.css ===295* {296    margin: 0;297    padding: 0;298    box-sizing: border-box;299}300 301:root {302    --primary-color: #667eea;303    --secondary-color: #764ba2;304    --success-color: #48bb78;305    --error-color: #f56565;306    --warning-color: #ed8936;307    --dark-bg: #1a202c;308    --light-bg: #f7fafc;309    --card-bg: #2d3748;310    --text-primary: #ffffff;311    --text-secondary: #a0aec0;312    --border-color: #4a5568;313    --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);314    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.2);315}316 317body {318    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;319    background: linear-gradient(135deg, #1a202c 0%, #2d3748 100%);320    color: var(--text-primary);321    min-height: 100vh;322    line-height: 1.6;323}324 325.app-container {326    display: flex;327    flex-direction: column;328    min-height: 100vh;329}330 331.header {332    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);333    padding: 2rem;334    text-align: center;335    box-shadow: var(--shadow-lg);336}337 338.header h1 {339    font-size: 2.5rem;340    margin-bottom: 0.5rem;341    color: white;342}343 344.header p {345    font-size: 1.1rem;346    color: rgba(255, 255, 255, 0.9);347    margin: 0.25rem 0;348}349 350.header a {351    color: white;352    text-decoration: underline;353    transition: opacity 0.3s;354}355 356.header a:hover {357    opacity: 0.8;358}359 360.main-content {361    flex: 1;362    padding: 1rem;363    max-width: 1400px;364    margin: 0 auto;365    width: 100%;366}367 368.tabs {369    display: flex;370    gap: 0.5rem;371    margin-bottom: 1rem;372    border-bottom: 2px solid var(--border-color);373    padding-bottom: 0;374}375 376.tab-button {377    background: transparent;378    border: none;379    color: var(--text-secondary);380    padding: 1rem 1.5rem;381    cursor: pointer;382    font-size: 1rem;383    transition: all 0.3s;384    border-bottom: 3px solid transparent;385    margin-bottom: -2px;386}387 388.tab-button:hover {389    color: var(--text-primary);390    background: rgba(255, 255, 255, 0.1);391}392 393.tab-button.active {394    color: var(--text-primary);395    border-bottom-color: var(--primary-color);396    background: rgba(102, 126, 234, 0.1);397}398 399.tab-panel {400    display: none;401    animation: fadeIn 0.3s;402}403 404.tab-panel.active {405    display: block;406}407 408@keyframes fadeIn {409    from { opacity: 0; transform: translateY(10px); }410    to { opacity: 1; transform: translateY(0); }411}412 413/* Editor Layout */414.editor-layout {415    display: grid;416    grid-template-columns: 300px 1fr;417    gap: 1rem;418    height: calc(100vh - 250px);419}420 421.sidebar {422    background: var(--card-bg);423    padding: 1.5rem;424    border-radius: 0.5rem;425    box-shadow: var(--shadow);426    overflow-y: auto;427}428 429.file-manager h3,430.settings-panel h3 {431    margin-bottom: 1rem;432    color: var(--text-primary);433    display: flex;434    align-items: center;435    gap: 0.5rem;436}437 438.file-controls {439    display: flex;440    flex-direction: column;441    gap: 0.5rem;442    margin-bottom: 1rem;443}444 445.file-controls input {446    padding: 0.5rem;447    border: 1px solid var(--border-color);448    border-radius: 0.25rem;449    background: var(--dark-bg);450    color: var(--text-primary);451}452 453.file-controls button,454.control-group button {455    padding: 0.5rem 1rem;456    border: none;457    border-radius: 0.25rem;458    cursor: pointer;459    font-size: 0.9rem;460    transition: all 0.3s;461    display: flex;462    align-items: center;463    gap: 0.5rem;464    justify-content: center;465}466 467.create-btn { background: var(--success-color); color: white; }468.save-btn { background: var(--primary-color); color: white; }469.delete-btn { background: var(--error-color); color: white; }470.run-btn { background: var(--success-color); color: white; }471.clear-btn { background: var(--warning-color); color: white; }472 473.file-select {474    width: 100%;475    padding: 0.5rem;476    border: 1px solid var(--border-color);477    border-radius: 0.25rem;478    background: var(--dark-bg);479    color: var(--text-primary);480}481 482.control-group {483    margin-bottom: 1rem;484}485 486.control-group label {487    display: block;488    margin-bottom: 0.5rem;489    color: var(--text-secondary);490}491 492.control-group select {493    width: 100%;494    padding: 0.5rem;495    border: 1px solid var(--border-color);496    border-radius: 0.25rem;497    background: var(--dark-bg);498    color: var(--text-primary);499}500 501.editor-section {502    background: var(--card-bg);503    padding: 1.5rem;504    border-radius: 0.5rem;505    box-shadow: var(--shadow);506    display: flex;507    flex-direction: column;508    gap: 1rem;509}510 511.editor-header,512.output-header {513    display: flex;514    justify-content: space-between;515    align-items: center;516}517 518.editor-header h3,519.output-header h3 {520    color: var(--text-primary);521    display: flex;522    align-items: center;523    gap: 0.5rem;524}525 526.editor-container {527    flex: 1;528    border: 1px solid var(--border-color);529    border-radius: 0.25rem;530    overflow: hidden;531}532 533.CodeMirror {534    height: 100%;535    font-size: 14px;536}537 538.output-section {539    background: var(--dark-bg);540    border-radius: 0.25rem;541}542 543.output-display {544    background: #000;545    color: #00ff00;546    padding: 1rem;547    border-radius: 0.25rem;548    font-family: 'Courier New', monospace;549    min-height: 150px;550    max-height: 200px;551    overflow-y: auto;552    white-space: pre-wrap;553}554 555/* Assistant Layout */556.assistant-layout {557    display: grid;558    grid-template-columns: 1fr 350px;559    gap: 1rem;560    height: calc(100vh - 250px);561}562 563.chat-section {564    background: var(--card-bg);565    padding: 1.5rem;566    border-radius: 0.5rem;567    box-shadow: var(--shadow);568    display: flex;569    flex-direction: column;570}571 572.chat-header {573    display: flex;574    justify-content: space-between;575    align-items: center;576    margin-bottom: 1rem;577}578 579.chat-header h3 {580    color: var(--text-primary);581    display: flex;582    align-items: center;583    gap: 0.5rem;584}585 586.chat-messages {587    flex: 1;588    overflow-y: auto;589    padding: 1rem;590    background: var(--dark-bg);591    border-radius: 0.25rem;592    margin-bottom: 1rem;593}594 595.message {596    margin-bottom: 1rem;597    padding: 0.75rem;598    border-radius: 0.5rem;599    animation: slideIn 0.3s;600}601 602@keyframes slideIn {603    from { opacity: 0; transform: translateX(-20px); }604    to { opacity: 1; transform: translateX(0); }605}606 607.message.user {608    background: var(--primary-color);609    margin-left: 2rem;610}611 612.message.assistant {613    background: var(--dark-bg);614    margin-right: 2rem;615    border: 1px solid var(--border-color);616}617 618.message strong {619    display: block;620    margin-bottom: 0.25rem;621    color: var(--text-secondary);622}623 624.chat-input-section {625    display: flex;626    gap: 0.5rem;627}628 629.chat-input-section textarea {630    flex: 1;631    padding: 0.75rem;632    border: 1px solid var(--border-color);633    border-radius: 0.25rem;634    background: var(--dark-bg);635    color: var(--text-primary);636    resize: vertical;637    min-height: 60px;638}639 640.send-btn {641    background: var(--primary-color);642    color: white;643    border: none;644    padding: 0.75rem 1.5rem;645    border-radius: 0.25rem;646    cursor: pointer;647    transition: all 0.3s;648}649 650.send-btn:hover {651    background: var(--secondary-color);652}653 654.tools-section {655    display: flex;656    flex-direction: column;657    gap: 1rem;658}659 660.quick-actions,661.ai-tools,662.history-section {663    background: var(--card-bg);664    padding: 1rem;665    border-radius: 0.5rem;666    box-shadow: var(--shadow);667}668 669.quick-actions h3,670.ai-tools h3,671.history-section h3 {672    margin-bottom: 1rem;673    color: var(--text-primary);674    display: flex;675    align-items: center;676    gap: 0.5rem;677}678 679.template-controls {680    display: flex;681    flex-direction: column;682    gap: 0.5rem;683}684 685.template-controls select {686    padding: 0.5rem;687    border: 1px solid var(--border-color);688    border-radius: 0.25rem;689    background: var(--dark-bg);690    color: var(--text-primary);691}692 693.template-btn,694.tool-btn {695    width: 100%;696    padding: 0.5rem;697    border: none;698    border-radius: 0.25rem;699    cursor: pointer;700    transition: all 0.3s;701    display: flex;702    align-items: center;703    justify-content: center;704    gap: 0.5rem;705}706 707.template-btn {708    background: var(--primary-color);709    color: white;710}711 712.tool-btn {713    background: var(--dark-bg);714    color: var(--text-primary);715    border: 1px solid var(--border-color);716    margin-bottom: 0.5rem;717}718 719.tool-btn:hover {720    background: var(--primary-color);721    color: white;722}723 724.history-display {725    max-height: 200px;726    overflow-y: auto;727    background: var(--dark-bg);728    padding: 0.5rem;729    border-radius: 0.25rem;730    font-size: 0.9rem;731}732 733.history-item {734    padding: 0.5rem;735    border-bottom: 1px solid var(--border-color);736    cursor: pointer;737    transition: background 0.3s;738}739 740.history-item:hover {741    background: rgba(255, 255, 255, 0.1);742}743 744/* Files Layout */745.files-layout {746    display: grid;747    grid-template-columns: 1fr 350px;748    gap: 1rem;749    height: calc(100vh - 250px);750}751 752.files-section {753    background: var(--card-bg);754    padding: 1.5rem;755    border-radius: 0.5rem;756    box-shadow: var(--shadow);757}758 759.files-header {760    display: flex;761    justify-content: space-between;762    align-items: center;763    margin-bottom: 1rem;764}765 766.files-header h3 {767    color: var(--text-primary);768    display: flex;769    align-items: center;770    gap: 0.5rem;771}772 773.refresh-btn {774    background: var(--primary-color);775    color: white;776    border: none;777    padding: 0.5rem 1rem;778    border-radius: 0.25rem;779    cursor: pointer;780    transition: all 0.3s;781}782 783.files-table-container {784    overflow-y: auto;785    max-height: calc(100% - 60px);786}787 788.files-table {789    width: 100%;790    border-collapse: collapse;791}792 793.files-table th,794.files-table td {795    padding: 0.75rem;796    text-align: left;797    border-bottom: 1px solid var(--border-color);798}799 800.files-table th {801    background: var(--dark-bg);802    color: var(--text-primary);803    position: sticky;804    top: 0;805}806 807.files-table tr:hover {808    background: rgba(255, 255, 255, 0.05);809}810 811.file-action-btn {812    background: transparent;813    border: 1px solid var(--border-color);814    color: var(--text-primary);815    padding: 0.25rem 0.5rem;816    border-radius: 0.25rem;817    cursor: pointer;818    margin-right: 0.25rem;819    transition: all 0.3s;820}821 822.file-action-btn:hover {823    background: var(--primary-color);824    border-color: var(--primary-color);825}826 827.stats-section {828    display: flex;829    flex-direction: column;830    gap: 1rem;831}832 833.stats-card,834.export-section,835.execution-history {836    background: var(--card-bg);837    padding: 1rem;838    border-radius: 0.5rem;839    box-shadow: var(--shadow);840}841 842.stats-card h3,843.export-section h3,844.execution-history h3 {845    margin-bottom: 1rem;846    color: var(--text-primary);847    display: flex;848    align-items: center;849    gap: 0.5rem;850}851 852.stats-display {853    display: grid;854    gap: 0.5rem;855}856 857.stat-item {858    display: flex;859    justify-content: space-between;860    padding: 0.5rem;861    background: var(--dark-bg);862    border-radius: 0.25rem;863}864 865.export-controls {866    display: flex;867    flex-direction: column;868    gap: 0.5rem;869}870 871.export-controls select {872    padding: 0.5rem;873    border: 1px solid var(--border-color);874    border-radius: 0.25rem;875    background: var(--dark-bg);876    color: var(--text-primary);877}878 879.export-btn {880    background: var(--success-color);881    color: white;882    border: none;883    padding: 0.5rem;884    border-radius: 0.25rem;885    cursor: pointer;886    transition: all 0.3s;887}888 889.exec-history {890    max-height: 300px;891    overflow-y: auto;892}893 894.exec-item {895    padding: 0.5rem;896    background: var(--dark-bg);897    border-radius: 0.25rem;898    margin-bottom: 0.5rem;899    font-size: 0.9rem;900}901 902.exec-item.success {903    border-left: 3px solid var(--success-color);904}905 906.exec-item.error {907    border-left: 3px solid var(--error-color);908}909 910/* Settings Layout */911.settings-layout {912    display: grid;913    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));914    gap: 1rem;915}916 917.settings-section {918    background: var(--card-bg);919    padding: 1.5rem;920    border-radius: 0.5rem;921    box-shadow: var(--shadow);922}923 924.settings-section h3 {925    margin-bottom: 1rem;926    color: var(--text-primary);927    display: flex;928    align-items: center;929    gap: 0.5rem;930}931 932.setting-group {933    margin-bottom: 1rem;934}935 936.setting-group label {937    display: block;938    margin-bottom: 0.5rem;939    color: var(--text-secondary);940}941 942.setting-group select,943.setting-group input[type="range"] {944    width: 100%;945    padding: 0.5rem;946    border: 1px solid var(--border-color);947    border-radius: 0.25rem;948    background: var(--dark-bg);949    color: var(--text-primary);950}951 952.setting-group input[type="checkbox"] {953    margin-right: 0.5rem;954}955 956.setting-group span {957    margin-left: 0.5rem;958    color: var(--text-secondary);959}960 961.reset-buttons {962    display: flex;963    gap: 0.5rem;964}965 966.reset-btn,967.clear-all-btn {968    flex: 1;969    padding: 0.75rem;970    border: none;971    border-radius: 0.25rem;972    cursor: pointer;973    transition: all 0.3s;974}975 976.reset-btn {977    background: var(--warning-color);978    color: white;979}980 981.clear-all-btn {982    background: var(--error-color);983    color: white;984}985 986/* Responsive Design */987@media (max-width: 768px) {988    .editor-layout,989    .assistant-layout,990    .files-layout {991        grid-template-columns: 1fr;992        height: auto;993    }994 995    .tabs {996        flex-wrap: wrap;997    }998 999    .tab-button {1000        flex: 1;1001        min-width: 120px;1002    }1003 1004    .header h1 {1005        font-size: 1.8rem;1006    }1007 1008    .main-content {1009        padding: 0.5rem;1010    }1011}1012 1013/* Scrollbar Styling */1014::-webkit-scrollbar {1015    width: 8px;1016}1017 1018::-webkit-scrollbar-track {1019    background: var(--dark-bg);1020}1021 1022::-webkit-scrollbar-thumb {1023    background: var(--border-color);1024    border-radius: 4px;1025}1026 1027::-webkit-scrollbar-thumb:hover {1028    background: var(--primary-color);1029}1030 1031=== assets/js/app.js ===1032// Main Application Logic1033class AnyCoderIDE {1034    constructor() {1035        this.files = JSON.parse(localStorage.getItem('anycoder_files')) || {};1036        this.currentFile = null;1037        this.chatHistory = JSON.parse(localStorage.getItem('anycoder_chat')) || [];1038        this.executionHistory = JSON.parse(localStorage.getItem('anycoder_exec')) || [];1039        this.settings = JSON.parse(localStorage.getItem('anycoder_settings')) || {1040            theme: 'dark',1041            fontSize: 14,1042            tabSize: 4,1043            lineNumbers: true,1044            wordWrap: false,1045            aiCreativity: 0.7,1046            maxTokens: 10001047        };1048        1049        this.editor = null;1050        this.init();1051    }1052 1053    init() {1054        this.initEditor();1055        this.initEventListeners();1056        this.initTabs();1057        this.loadFiles();1058        this.loadChatHistory();1059        this.applySettings();1060    }1061 1062    initEditor() {1063        const textarea = document.getElementById('codeEditor');1064        this.editor = CodeMirror.fromTextArea(textarea, {1065            lineNumbers: this.settings.lineNumbers,1066            mode: 'python',1067            theme: 'monokai',1068            indentUnit: this.settings.tabSize,1069            tabSize: this.settings.tabSize,1070            lineWrapping: this.settings.wordWrap,1071            autofocus: true1072        });1073 1074        this.editor.on('change', () => {1075            if (this.currentFile) {1076                this.files[this.currentFile] = this.editor.getValue();1077                this.saveFiles();1078            }1079        });1080    }1081 1082    initTabs() {1083        const tabButtons = document.querySelectorAll('.tab-button');1084        const tabPanels = document.querySelectorAll('.tab-panel');1085 1086        tabButtons.forEach(button => {1087            button.addEventListener('click', () => {1088                const tabName = button.dataset.tab;1089                1090                tabButtons.forEach(btn => btn.classList.remove('active'));1091                tabPanels.forEach(panel => panel.classList.remove('active'));1092                1093                button.classList.add('active');1094                document.getElementById(tabName).classList.add('active');1095            });1096        });1097    }1098 1099    initEventListeners() {1100        // File Management1101        document.getElementById('createFileBtn').addEventListener('click', () => this.createFile());1102        document.getElementById('saveFileBtn').addEventListener('click', () => this.saveCurrentFile());1103        document.getElementById('deleteFileBtn').addEventListener('click', () => this.deleteCurrentFile());1104        document.getElementById('fileList').addEventListener('change', (e) => this.loadFile(e.target.value));1105 1106        // Code Execution1107        document.getElementById('runCodeBtn').addEventListener('click', () => this.runCode());1108        document.getElementById('clearEditorBtn').addEventListener('click', () => this.clearEditor());1109        document.getElementById('clearOutputBtn').addEventListener('click', () => this.clearOutput());1110 1111        // Language Selection1112        document.getElementById('languageSelect').addEventListener('change', (e) => this.changeLanguage(e.target.value));1113 1114        // AI Assistant1115        document.getElementById('sendChatBtn').addEventListener('click', () => this.sendChatMessage());1116        document.getElementById('chatInput').addEventListener('keypress', (e) => {1117            if (e.key === 'Enter' && !e.shiftKey) {1118                e.preventDefault();1119                this.sendChatMessage();1120            }1121        });1122        document.getElementById('clearChatBtn').addEventListener('click', () => this.clearChat());1123        document.getElementById('explainBtn').addEventListener('click', () => this.explainCode());1124        document.getElementById('debugBtn').addEventListener('click', () => this.debugCode());1125        document.getElementById('optimizeBtn').addEventListener('click', () => this.optimizeCode());1126 1127        // Templates1128        document.getElementById('useTemplateBtn').addEventListener('click', () => this.useTemplate());1129 1130        // Project Files1131        document.getElementById('refreshFilesBtn').addEventListener('click', () => this.refreshFiles());1132        document.getElementById('exportBtn').addEventListener('click', () => this.exportProject());1133 1134        // Settings1135        document.getElementById('themeSelect').addEventListener('change', (e) => this.changeTheme(e.target.value));1136        document.getElementById('fontSize').addEventListener('input', (e) => this.updateFontSize(e.target.value));1137        document.getElementById('tabSize').addEventListener('input', (e) => this.updateTabSize(e.target.value));1138        document.getElementById('lineNumbers').addEventListener('change', (e) => this.toggleLineNumbers(e.target.checked));1139        document.getElementById('wordWrap').addEventListener('change', (e) => this.toggleWordWrap(e.target.checked));1140        document.getElementById('aiCreativity').addEventListener('input', (e) => this.updateAICreativity(e.target.value));1141        document.getElementById('maxTokens').addEventListener('input', (e) => this.updateMaxTokens(e.target.value));1142        document.getElementById('resetSettingsBtn').addEventListener('click', () => this.resetSettings());1143        document.getElementById('clearAllBtn').addEventListener('click', () => this.clearAllData());1144    }1145 1146    // File Management Methods1147    createFile() {1148        const filename = document.getElementById('newFileName').value.trim();1149        if (!filename) {1150            this.showOutput('Error: Please enter a filename', 'error');1151            return;1152        }1153 1154        if (this.files[filename]) {1155            this.showOutput(`Error: File ${filename} already exists`, 'error');1156            return;1157        }1158 1159        this.files[filename] = '';1160        this.currentFile = filename;1161        this.editor.setValue('');1162        this.saveFiles();1163        this.updateFileList();1164        this.showOutput(`Created file: ${filename}`, 'success');1165        document.getElementById('newFileName').value = '';1166    }1167 1168    saveCurrentFile() {1169        if (!this.currentFile) {1170            this.showOutput('No file selected', 'error');1171            return;1172        }1173 1174        this.files[this.currentFile] = this.editor.getValue();1175        this.saveFiles();1176        this.showOutput(`Saved: ${this.currentFile}`, 'success');1177    }1178 1179    deleteCurrentFile() {1180        if (!this.currentFile) {1181            this.showOutput('No file selected', 'error');1182            return;1183        }1184 1185        delete this.files[this.currentFile];1186        this.saveFiles();1187        this.updateFileList();1188        this.showOutput(`Deleted: ${this.currentFile}`, 'success');1189        this.currentFile = null;1190        this.editor.setValue('');1191    }1192 1193    loadFile(filename) {1194        if (!filename) return;1195 1196        this.currentFile = filename;1197        this.editor.setValue(this.files[filename] || '');1198        this.showOutput(`Loaded: ${filename}`, 'success');1199    }1200 

Showing the first 1,200 of 1781 lines. Download the file for the rest.