ezpm2gui 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ .npmignore +39 -0
- package/README.md +102 -0
- package/bin/ezpm2gui.js +52 -0
- package/bin/generate-ecosystem.js +57 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +18 -0
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.js +219 -0
- package/install.bat +22 -0
- package/install.sh +23 -0
- package/package.json +49 -0
- package/scripts/postinstall.js +36 -0
- package/src/client/build/asset-manifest.json +13 -0
- package/src/client/build/index.html +1 -0
- package/src/client/build/manifest.json +25 -0
- package/src/client/build/static/css/main.c1cbda3a.css +2 -0
- package/src/client/build/static/css/main.c1cbda3a.css.map +1 -0
- package/src/client/build/static/js/main.dde30e92.js +3 -0
- package/src/client/build/static/js/main.dde30e92.js.LICENSE.txt +53 -0
- package/src/client/build/static/js/main.dde30e92.js.map +1 -0
- package/src/client/package-lock.json +16192 -0
- package/src/client/package.json +39 -0
- package/src/client/public/index.html +20 -0
- package/src/client/public/manifest.json +25 -0
- package/src/index.ts +24 -0
- package/src/server/index.ts +240 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--primary-color:#4a90e2;--secondary-color:#50e3c2;--danger-color:#e74c3c;--success-color:#2ecc71;--warning-color:#f39c12;--bg-color:#f8f9fa;--card-bg:#fff;--text-color:#333;--text-light:#666;--border-color:#e0e0e0;--hover-color:#f1f1f1}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;background-color:var(--bg-color);color:#333;color:var(--text-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;margin:0}.App{margin:0 auto;max-width:1200px;padding:20px;text-align:center}.App-header{margin-bottom:30px}.header-content{align-items:center;display:flex;justify-content:space-between}.App-header h1{color:#4a90e2;color:var(--primary-color);font-size:2.5rem;margin:0}.App-header p{color:#666;color:var(--text-light);margin-top:5px}.about-button{background-color:#4a90e2;background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px}.about-button:hover{opacity:.9}.about-section{background-color:#fff;background-color:var(--card-bg);border-radius:8px;box-shadow:0 4px 6px #0000000d;margin-bottom:20px;padding:20px;text-align:left}.about-section h2{color:#4a90e2;color:var(--primary-color);margin-top:0}.about-section ul{padding-left:20px}.about-section li{margin-bottom:8px}.filters{display:flex;justify-content:space-between;margin-bottom:20px}.search-box input{border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:4px;font-size:.95rem;padding:8px 12px;width:250px}.status-filter{align-items:center;display:flex}.status-filter label{margin-right:10px}.status-filter select{border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:4px;font-size:.95rem;padding:8px 12px}.loading{align-items:center;color:#666;color:var(--text-light);display:flex;font-size:1.5rem;height:100vh;justify-content:center}.error-message{background-color:#e74c3c1a;border-left:4px solid #e74c3c;border-left:4px solid var(--danger-color);border-radius:5px;color:#e74c3c;color:var(--danger-color);margin-bottom:20px;padding:15px}.dashboard{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 2fr}@media (max-width:768px){.dashboard{grid-template-columns:1fr}}.card{background-color:#fff;background-color:var(--card-bg);border-radius:8px;box-shadow:0 4px 6px #0000000d;margin-bottom:20px;padding:20px}.card-header{align-items:center;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.card-title{font-size:1.2rem;font-weight:600;margin:0}.metrics-panel,.processes-panel{height:100%}.process-list{display:flex;flex-direction:column;gap:10px}.process-item{align-items:center;background-color:#fff;background-color:var(--card-bg);border-radius:5px;box-shadow:0 2px 4px #0000000d;display:grid;grid-template-columns:.5fr 1fr .5fr .5fr 1fr;padding:15px;transition:all .2s}.process-item:hover{background-color:#f1f1f1;background-color:var(--hover-color)}.process-name{font-weight:600}.process-status{border-radius:100px;font-size:.8rem;font-weight:600;padding:4px 8px;text-align:center}.status-online{background-color:#2ecc711a;color:#2ecc71;color:var(--success-color)}.status-stopped{background-color:#e74c3c1a;color:#e74c3c;color:var(--danger-color)}.status-errored{background-color:#f39c121a;color:#f39c12;color:var(--warning-color)}.process-cpu,.process-memory{text-align:center}.process-actions{display:flex;gap:5px;justify-content:flex-end}.btn{border:none;border-radius:4px;cursor:pointer;font-size:.9rem;padding:6px 12px;transition:all .2s}.btn:hover{opacity:.9}.btn-primary{background-color:#4a90e2;background-color:var(--primary-color);color:#fff}.btn-success{background-color:#2ecc71;background-color:var(--success-color);color:#fff}.btn-danger{background-color:#e74c3c;background-color:var(--danger-color);color:#fff}.btn-warning{background-color:#f39c12;background-color:var(--warning-color);color:#fff}.system-metrics{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.metric-card{background-color:#fff;background-color:var(--card-bg);border-radius:5px;box-shadow:0 2px 4px #0000000d;padding:15px}.metric-value{margin:10px 0}.memory-bar{background-color:#e0e0e0;background-color:var(--border-color);border-radius:5px;height:10px;margin-top:10px;overflow:hidden}.memory-used{background-color:#4a90e2;background-color:var(--primary-color);height:100%;transition:width .5s}.process-detail-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.process-detail-container{background-color:#fff;background-color:var(--card-bg);border-radius:8px;box-shadow:0 10px 25px #00000026;display:flex;flex-direction:column;max-height:90vh;max-width:900px;overflow:hidden;width:90%}.process-detail-header{align-items:center;border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px}.process-detail-header h2{color:#4a90e2;color:var(--primary-color);font-size:1.5rem;margin:0}.close-btn{background:none;border:none;color:#666;color:var(--text-light);cursor:pointer;font-size:1.5rem}.close-btn:hover{color:#e74c3c;color:var(--danger-color)}.process-detail-tabs{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color);display:flex}.tab-btn{background:none;border:none;border-bottom:2px solid #0000;color:#666;color:var(--text-light);cursor:pointer;font-size:1rem;padding:12px 20px}.tab-btn.active{border-bottom:2px solid #4a90e2;border-bottom:2px solid var(--primary-color);color:#4a90e2;color:var(--primary-color);font-weight:600}.process-detail-content{max-height:70vh;overflow-y:auto;padding:20px}.info-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.info-item{background-color:#f8f9fa;background-color:var(--bg-color);border-radius:5px;padding:15px}.info-label{color:#666;color:var(--text-light);font-size:.9rem;margin-bottom:5px}.info-value{font-size:1.1rem;font-weight:600}.info-value.code{font-family:monospace;font-size:.9rem;overflow-wrap:break-word}.info-value.status-online{color:#2ecc71;color:var(--success-color)}.info-value.status-stopped{color:#e74c3c;color:var(--danger-color)}.info-value.status-errored{color:#f39c12;color:var(--warning-color)}.logs-container{display:flex;flex-direction:column;height:100%}.logs-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.logs-header h3{margin:0}.logs-controls{display:flex;gap:10px}.log-type-selector{display:flex}.auto-refresh-btn,.log-type-btn{background-color:#f8f9fa;background-color:var(--bg-color);border:1px solid #e0e0e0;border:1px solid var(--border-color);cursor:pointer;font-size:.9rem;padding:8px 12px}.log-type-btn:first-child{border-radius:4px 0 0 4px}.log-type-btn:last-child{border-radius:0 4px 4px 0}.auto-refresh-btn{border-radius:4px}.auto-refresh-btn.active,.log-type-btn.active{background-color:#4a90e2;background-color:var(--primary-color);border-color:#4a90e2;border-color:var(--primary-color);color:#fff}.logs-content{background-color:#1e1e1e;border-radius:5px;color:#f8f8f8;font-family:monospace;height:400px;overflow-y:auto;padding:15px}.logs-content pre{margin:0;white-space:pre-wrap;word-break:break-all}.logs-error{background-color:#e74c3c1a;border-radius:5px;color:#e74c3c;color:var(--danger-color);margin-bottom:15px;padding:10px}.logs-empty,.logs-loading{align-items:center;color:#666;color:var(--text-light);display:flex;height:400px;justify-content:center}.env-list{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.env-item{background-color:#f8f9fa;background-color:var(--bg-color);border-radius:5px;padding:10px}.env-key{font-weight:600;margin-bottom:5px}.env-value{color:#666;color:var(--text-light);font-family:monospace;word-break:break-all}.current-metrics{display:flex;gap:20px;margin-bottom:20px}.metric-item{background-color:#f8f9fa;background-color:var(--bg-color);border-radius:5px;flex:1 1;padding:15px;text-align:center}.metric-label{color:#666;color:var(--text-light);font-size:.9rem}.metric-value{color:#4a90e2;color:var(--primary-color);font-size:1.8rem;font-weight:600;margin-top:10px}.metrics-chart{background-color:#f8f9fa;background-color:var(--bg-color);border-radius:5px;padding:15px}.btn-info{background-color:#4a90e2;background-color:var(--primary-color);color:#fff}
|
|
2
|
+
/*# sourceMappingURL=main.c1cbda3a.css.map*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/css/main.c1cbda3a.css","mappings":"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","sources":["index.css","App.css"],"sourcesContent":["body {\r\n margin: 0;\r\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\r\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\r\n sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\ncode {\r\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\r\n monospace;\r\n}\r\n",":root {\r\n --primary-color: #4a90e2;\r\n --secondary-color: #50e3c2;\r\n --danger-color: #e74c3c;\r\n --success-color: #2ecc71;\r\n --warning-color: #f39c12;\r\n --bg-color: #f8f9fa;\r\n --card-bg: #ffffff;\r\n --text-color: #333333;\r\n --text-light: #666666;\r\n --border-color: #e0e0e0;\r\n --hover-color: #f1f1f1;\r\n}\r\n\r\nbody {\r\n margin: 0;\r\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n background-color: var(--bg-color);\r\n color: var(--text-color);\r\n}\r\n\r\n.App {\r\n text-align: center;\r\n max-width: 1200px;\r\n margin: 0 auto;\r\n padding: 20px;\r\n}\r\n\r\n.App-header {\r\n margin-bottom: 30px;\r\n}\r\n\r\n.header-content {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n}\r\n\r\n.App-header h1 {\r\n margin: 0;\r\n font-size: 2.5rem;\r\n color: var(--primary-color);\r\n}\r\n\r\n.App-header p {\r\n color: var(--text-light);\r\n margin-top: 5px;\r\n}\r\n\r\n.about-button {\r\n background-color: var(--primary-color);\r\n color: white;\r\n border: none;\r\n padding: 8px 16px;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n font-size: 0.9rem;\r\n}\r\n\r\n.about-button:hover {\r\n opacity: 0.9;\r\n}\r\n\r\n.about-section {\r\n background-color: var(--card-bg);\r\n border-radius: 8px;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);\r\n padding: 20px;\r\n margin-bottom: 20px;\r\n text-align: left;\r\n}\r\n\r\n.about-section h2 {\r\n color: var(--primary-color);\r\n margin-top: 0;\r\n}\r\n\r\n.about-section ul {\r\n padding-left: 20px;\r\n}\r\n\r\n.about-section li {\r\n margin-bottom: 8px;\r\n}\r\n\r\n.filters {\r\n display: flex;\r\n justify-content: space-between;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.search-box input {\r\n padding: 8px 12px;\r\n border: 1px solid var(--border-color);\r\n border-radius: 4px;\r\n width: 250px;\r\n font-size: 0.95rem;\r\n}\r\n\r\n.status-filter {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.status-filter label {\r\n margin-right: 10px;\r\n}\r\n\r\n.status-filter select {\r\n padding: 8px 12px;\r\n border: 1px solid var(--border-color);\r\n border-radius: 4px;\r\n font-size: 0.95rem;\r\n}\r\n\r\n.loading {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 100vh;\r\n font-size: 1.5rem;\r\n color: var(--text-light);\r\n}\r\n\r\n.error-message {\r\n background-color: rgba(231, 76, 60, 0.1);\r\n color: var(--danger-color);\r\n padding: 15px;\r\n border-radius: 5px;\r\n margin-bottom: 20px;\r\n border-left: 4px solid var(--danger-color);\r\n}\r\n\r\n.dashboard {\r\n display: grid;\r\n grid-template-columns: 1fr 2fr;\r\n gap: 20px;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .dashboard {\r\n grid-template-columns: 1fr;\r\n }\r\n}\r\n\r\n.card {\r\n background-color: var(--card-bg);\r\n border-radius: 8px;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);\r\n padding: 20px;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.card-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 15px;\r\n border-bottom: 1px solid var(--border-color);\r\n padding-bottom: 10px;\r\n}\r\n\r\n.card-title {\r\n margin: 0;\r\n font-size: 1.2rem;\r\n font-weight: 600;\r\n}\r\n\r\n.metrics-panel,\r\n.processes-panel {\r\n height: 100%;\r\n}\r\n\r\n.process-list {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 10px;\r\n}\r\n\r\n.process-item {\r\n display: grid;\r\n grid-template-columns: 0.5fr 1fr 0.5fr 0.5fr 1fr;\r\n align-items: center;\r\n padding: 15px;\r\n border-radius: 5px;\r\n background-color: var(--card-bg);\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\r\n transition: all 0.2s;\r\n}\r\n\r\n.process-item:hover {\r\n background-color: var(--hover-color);\r\n}\r\n\r\n.process-name {\r\n font-weight: 600;\r\n}\r\n\r\n.process-status {\r\n padding: 4px 8px;\r\n border-radius: 100px;\r\n font-size: 0.8rem;\r\n font-weight: 600;\r\n text-align: center;\r\n}\r\n\r\n.status-online {\r\n background-color: rgba(46, 204, 113, 0.1);\r\n color: var(--success-color);\r\n}\r\n\r\n.status-stopped {\r\n background-color: rgba(231, 76, 60, 0.1);\r\n color: var(--danger-color);\r\n}\r\n\r\n.status-errored {\r\n background-color: rgba(243, 156, 18, 0.1);\r\n color: var(--warning-color);\r\n}\r\n\r\n.process-memory,\r\n.process-cpu {\r\n text-align: center;\r\n}\r\n\r\n.process-actions {\r\n display: flex;\r\n gap: 5px;\r\n justify-content: flex-end;\r\n}\r\n\r\n.btn {\r\n padding: 6px 12px;\r\n border-radius: 4px;\r\n border: none;\r\n font-size: 0.9rem;\r\n cursor: pointer;\r\n transition: all 0.2s;\r\n}\r\n\r\n.btn:hover {\r\n opacity: 0.9;\r\n}\r\n\r\n.btn-primary {\r\n background-color: var(--primary-color);\r\n color: white;\r\n}\r\n\r\n.btn-success {\r\n background-color: var(--success-color);\r\n color: white;\r\n}\r\n\r\n.btn-danger {\r\n background-color: var(--danger-color);\r\n color: white;\r\n}\r\n\r\n.btn-warning {\r\n background-color: var(--warning-color);\r\n color: white;\r\n}\r\n\r\n.system-metrics {\r\n display: grid;\r\n grid-template-columns: 1fr 1fr;\r\n gap: 15px;\r\n}\r\n\r\n.metric-card {\r\n background-color: var(--card-bg);\r\n padding: 15px;\r\n border-radius: 5px;\r\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\r\n}\r\n\r\n.metric-value {\r\n font-size: 1.8rem;\r\n font-weight: 600;\r\n color: var(--primary-color);\r\n margin: 10px 0;\r\n}\r\n\r\n.metric-label {\r\n font-size: 0.9rem;\r\n color: var(--text-light);\r\n}\r\n\r\n.memory-bar {\r\n height: 10px;\r\n background-color: var(--border-color);\r\n border-radius: 5px;\r\n margin-top: 10px;\r\n overflow: hidden;\r\n}\r\n\r\n.memory-used {\r\n height: 100%; background-color: var(--primary-color);\r\n transition: width 0.5s;\r\n}\r\n\r\n/* Process Detail Styles */\r\n.process-detail-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 1000;\r\n}\r\n\r\n.process-detail-container {\r\n background-color: var(--card-bg);\r\n border-radius: 8px;\r\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);\r\n width: 90%;\r\n max-width: 900px;\r\n max-height: 90vh;\r\n overflow: hidden;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.process-detail-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 20px;\r\n border-bottom: 1px solid var(--border-color);\r\n}\r\n\r\n.process-detail-header h2 {\r\n margin: 0;\r\n font-size: 1.5rem;\r\n color: var(--primary-color);\r\n}\r\n\r\n.close-btn {\r\n background: none;\r\n border: none;\r\n font-size: 1.5rem;\r\n cursor: pointer;\r\n color: var(--text-light);\r\n}\r\n\r\n.close-btn:hover {\r\n color: var(--danger-color);\r\n}\r\n\r\n.process-detail-tabs {\r\n display: flex;\r\n border-bottom: 1px solid var(--border-color);\r\n}\r\n\r\n.tab-btn {\r\n padding: 12px 20px;\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n font-size: 1rem;\r\n color: var(--text-light);\r\n border-bottom: 2px solid transparent;\r\n}\r\n\r\n.tab-btn.active {\r\n color: var(--primary-color);\r\n border-bottom: 2px solid var(--primary-color);\r\n font-weight: 600;\r\n}\r\n\r\n.process-detail-content {\r\n padding: 20px;\r\n overflow-y: auto;\r\n max-height: 70vh;\r\n}\r\n\r\n/* Info tab styles */\r\n.info-grid {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\r\n gap: 15px;\r\n}\r\n\r\n.info-item {\r\n background-color: var(--bg-color);\r\n padding: 15px;\r\n border-radius: 5px;\r\n}\r\n\r\n.info-label {\r\n color: var(--text-light);\r\n font-size: 0.9rem;\r\n margin-bottom: 5px;\r\n}\r\n\r\n.info-value {\r\n font-size: 1.1rem;\r\n font-weight: 600;\r\n}\r\n\r\n.info-value.code {\r\n font-family: monospace;\r\n font-size: 0.9rem;\r\n overflow-wrap: break-word;\r\n}\r\n\r\n.info-value.status-online {\r\n color: var(--success-color);\r\n}\r\n\r\n.info-value.status-stopped {\r\n color: var(--danger-color);\r\n}\r\n\r\n.info-value.status-errored {\r\n color: var(--warning-color);\r\n}\r\n\r\n/* Logs tab styles */\r\n.logs-container {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n}\r\n\r\n.logs-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n margin-bottom: 15px;\r\n}\r\n\r\n.logs-header h3 {\r\n margin: 0;\r\n}\r\n\r\n.logs-controls {\r\n display: flex;\r\n gap: 10px;\r\n}\r\n\r\n.log-type-selector {\r\n display: flex;\r\n}\r\n\r\n.log-type-btn, .auto-refresh-btn {\r\n padding: 8px 12px;\r\n border: 1px solid var(--border-color);\r\n background-color: var(--bg-color);\r\n cursor: pointer;\r\n font-size: 0.9rem;\r\n}\r\n\r\n.log-type-btn:first-child {\r\n border-radius: 4px 0 0 4px;\r\n}\r\n\r\n.log-type-btn:last-child {\r\n border-radius: 0 4px 4px 0;\r\n}\r\n\r\n.auto-refresh-btn {\r\n border-radius: 4px;\r\n}\r\n\r\n.log-type-btn.active, .auto-refresh-btn.active {\r\n background-color: var(--primary-color);\r\n color: white;\r\n border-color: var(--primary-color);\r\n}\r\n\r\n.logs-content {\r\n background-color: #1e1e1e;\r\n color: #f8f8f8;\r\n padding: 15px;\r\n border-radius: 5px;\r\n font-family: monospace;\r\n height: 400px;\r\n overflow-y: auto;\r\n}\r\n\r\n.logs-content pre {\r\n margin: 0;\r\n white-space: pre-wrap;\r\n word-break: break-all;\r\n}\r\n\r\n.logs-error {\r\n background-color: rgba(231, 76, 60, 0.1);\r\n color: var(--danger-color);\r\n padding: 10px;\r\n border-radius: 5px;\r\n margin-bottom: 15px;\r\n}\r\n\r\n.logs-empty, .logs-loading {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n height: 400px;\r\n color: var(--text-light);\r\n}\r\n\r\n/* Env tab styles */\r\n.env-list {\r\n display: grid;\r\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\r\n gap: 10px;\r\n}\r\n\r\n.env-item {\r\n background-color: var(--bg-color);\r\n padding: 10px;\r\n border-radius: 5px;\r\n}\r\n\r\n.env-key {\r\n font-weight: 600;\r\n margin-bottom: 5px;\r\n}\r\n\r\n.env-value {\r\n font-family: monospace;\r\n word-break: break-all;\r\n color: var(--text-light);\r\n}\r\n\r\n/* Metrics tab styles */\r\n.current-metrics {\r\n display: flex;\r\n gap: 20px;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.metric-item {\r\n flex: 1;\r\n background-color: var(--bg-color);\r\n padding: 15px;\r\n border-radius: 5px;\r\n text-align: center;\r\n}\r\n\r\n.metric-label {\r\n font-size: 0.9rem;\r\n color: var(--text-light);\r\n}\r\n\r\n.metric-value {\r\n font-size: 1.8rem;\r\n font-weight: 600;\r\n color: var(--primary-color);\r\n margin-top: 10px;\r\n}\r\n\r\n.metrics-chart {\r\n background-color: var(--bg-color);\r\n padding: 15px;\r\n border-radius: 5px;\r\n}\r\n\r\n/* Button styles */\r\n.btn-info {\r\n background-color: var(--primary-color);\r\n color: white;\r\n}\r\n"],"names":[],"sourceRoot":""}
|