🐛 Update: Added support for the 'find' command in settings.local.json. Enhanced logging for various modules, including initialization and performance metrics. Improved SQLite database optimization and ensured better tracking of user interactions and system processes. 📚

This commit is contained in:
2025-06-14 16:26:43 +02:00
parent ee54bc273c
commit 89037861e3
2472 changed files with 691099 additions and 1 deletions

View File

@ -0,0 +1,489 @@
/* ========================================
MYP Professional Network Diagram
Mercedes-Benz 3D-Druck-Management-System
======================================== */
:root {
/* Mercedes Brand Colors */
--mb-blue: #0066cc;
--mb-silver: #c7c7c7;
--mb-dark: #1a1a1a;
/* Professional Colors */
--bg-primary: #0a0a0a;
--bg-secondary: #1a1a1a;
--text-primary: #ffffff;
--text-secondary: #cccccc;
--text-tertiary: #999999;
/* Node Colors */
--frontend-color: #4ecdc4;
--backend-color: #f39c12;
--smartplug-color: #e74c3c;
--printer-color: #9b59b6;
--auth-color: #2ecc71;
--server-color: #3498db;
/* Connection Colors */
--conn-frontend: #4ecdc4;
--conn-api: #3498db;
--conn-auth: #2ecc71;
--conn-backend: #f39c12;
--conn-control: #e74c3c;
--conn-power: #ff6b35;
--conn-monitor: #95a5a6;
}
/* ========================================
Base Styles
======================================== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
background: linear-gradient(135deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);
color: var(--text-primary);
line-height: 1.6;
min-height: 100vh;
overflow: auto;
}
/* ========================================
Diagram Container
======================================== */
.diagram-container {
width: 100%;
min-height: 100vh;
padding: 20px;
}
.diagram-header {
text-align: center;
margin-bottom: 30px;
padding: 20px;
background: rgba(255, 255, 255, 0.03);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 12px;
}
.diagram-header h1 {
font-size: 2.5rem;
font-weight: 700;
background: linear-gradient(135deg, var(--mb-silver), var(--mb-blue));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 10px;
}
.diagram-header p {
font-size: 1.1rem;
color: var(--text-secondary);
margin-bottom: 15px;
}
.system-status {
display: inline-flex;
align-items: center;
gap: 8px;
background: rgba(0, 255, 136, 0.1);
border: 1px solid rgba(0, 255, 136, 0.3);
border-radius: 20px;
padding: 8px 16px;
font-size: 0.9rem;
font-weight: 500;
}
.status-indicator {
width: 8px;
height: 8px;
border-radius: 50%;
}
.status-indicator.online {
background: #00ff88;
box-shadow: 0 0 10px #00ff88;
}
/* ========================================
Network Diagram
======================================== */
.network-diagram {
position: relative;
width: 1300px;
height: 850px;
margin: 0 auto;
background: rgba(255, 255, 255, 0.02);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 20px;
overflow: visible;
}
/* ========================================
Nodes
======================================== */
.node {
position: absolute;
width: 120px;
height: 100px;
background: rgba(255, 255, 255, 0.08);
border: 2px solid rgba(255, 255, 255, 0.2);
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
backdrop-filter: blur(20px);
transform-origin: center;
}
.node::before {
content: '';
position: absolute;
top: -2px;
left: -2px;
right: -2px;
bottom: -2px;
background: linear-gradient(135deg, transparent, rgba(255, 255, 255, 0.1), transparent);
border-radius: 18px;
opacity: 0;
transition: opacity 0.3s ease;
z-index: -1;
}
.node:hover {
transform: translateY(-8px) scale(1.05);
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.3),
0 0 30px rgba(255, 255, 255, 0.1);
}
.node:hover::before {
opacity: 1;
}
.node-content {
text-align: center;
z-index: 2;
}
.node-icon {
font-size: 2rem;
margin-bottom: 8px;
display: block;
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}
.node-label {
font-size: 0.8rem;
font-weight: 600;
color: var(--text-primary);
margin-bottom: 4px;
line-height: 1.2;
}
.node-detail {
font-size: 0.7rem;
color: var(--text-secondary);
font-family: 'Courier New', monospace;
font-weight: 500;
}
/* ========================================
Node Type Specific Styles
======================================== */
.frontend-node {
border-left: 4px solid var(--frontend-color);
box-shadow: 0 0 20px rgba(78, 205, 196, 0.2);
}
.frontend-node:hover {
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.3),
0 0 40px rgba(78, 205, 196, 0.4);
}
.backend-node {
border-left: 4px solid var(--backend-color);
box-shadow: 0 0 20px rgba(243, 156, 18, 0.2);
}
.backend-node:hover {
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.3),
0 0 40px rgba(243, 156, 18, 0.4);
}
.server-main {
border: 3px solid var(--server-color);
background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(52, 152, 219, 0.1));
box-shadow: 0 0 30px rgba(52, 152, 219, 0.3);
}
.server-main:hover {
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.3),
0 0 50px rgba(52, 152, 219, 0.5);
}
.smartplug-node {
border-left: 4px solid var(--smartplug-color);
box-shadow: 0 0 20px rgba(231, 76, 60, 0.2);
}
.smartplug-node:hover {
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.3),
0 0 40px rgba(231, 76, 60, 0.4);
}
.printer-node {
border-left: 4px solid var(--printer-color);
box-shadow: 0 0 20px rgba(155, 89, 182, 0.2);
}
.printer-node:hover {
box-shadow:
0 20px 40px rgba(0, 0, 0, 0.3),
0 0 40px rgba(155, 89, 182, 0.4);
}
/* ========================================
Connections
======================================== */
.connections-layer {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
z-index: 1;
}
.connection {
stroke-width: 2;
opacity: 0.8;
filter: drop-shadow(0 0 4px currentColor);
transition: all 0.3s ease;
}
.connection:hover {
stroke-width: 3;
opacity: 1;
}
/* Connection Type Styles */
.frontend-conn {
stroke: var(--conn-frontend);
stroke-width: 2.5;
}
.api-conn {
stroke: var(--conn-api);
stroke-width: 2.5;
}
.auth-conn {
stroke: var(--conn-auth);
stroke-width: 2;
stroke-dasharray: 8,4;
}
.backend-conn {
stroke: var(--conn-backend);
stroke-width: 2;
}
.control-conn {
stroke: var(--conn-control);
stroke-width: 2.5;
}
.power-conn {
stroke: var(--conn-power);
stroke-width: 4;
}
.monitor-conn {
stroke: var(--conn-monitor);
stroke-width: 1.5;
opacity: 0.6;
}
/* ========================================
Legend
======================================== */
.diagram-legend {
margin-top: 30px;
padding: 20px;
background: rgba(255, 255, 255, 0.03);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 12px;
max-width: 1300px;
margin-left: auto;
margin-right: auto;
}
.diagram-legend h3 {
font-size: 1.2rem;
font-weight: 600;
color: var(--text-primary);
margin-bottom: 15px;
text-align: center;
}
.legend-items {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 12px;
}
.legend-item {
display: flex;
align-items: center;
gap: 12px;
padding: 8px;
background: rgba(255, 255, 255, 0.03);
border-radius: 8px;
transition: background 0.3s ease;
}
.legend-item:hover {
background: rgba(255, 255, 255, 0.06);
}
.legend-line {
width: 30px;
height: 3px;
border-radius: 2px;
flex-shrink: 0;
}
.legend-line.frontend-conn { background: var(--conn-frontend); }
.legend-line.api-conn { background: var(--conn-api); }
.legend-line.auth-conn { background: var(--conn-auth); }
.legend-line.backend-conn { background: var(--conn-backend); }
.legend-line.control-conn { background: var(--conn-control); }
.legend-line.power-conn { background: var(--conn-power); }
.legend-line.monitor-conn { background: var(--conn-monitor); }
.legend-item span {
font-size: 0.85rem;
color: var(--text-secondary);
font-weight: 500;
}
/* ========================================
Responsive Design
======================================== */
@media (max-width: 1400px) {
.diagram-container {
padding: 15px;
}
.network-diagram {
transform: scale(0.8);
transform-origin: top center;
}
.diagram-header h1 {
font-size: 2rem;
}
}
@media (max-width: 1024px) {
.network-diagram {
transform: scale(0.6);
}
.legend-items {
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.diagram-header h1 {
font-size: 1.8rem;
}
}
@media (max-width: 768px) {
.network-diagram {
transform: scale(0.45);
}
.legend-items {
grid-template-columns: 1fr;
}
.diagram-header {
padding: 15px;
}
.diagram-header h1 {
font-size: 1.5rem;
}
.diagram-header p {
font-size: 1rem;
}
}
/* ========================================
Animation Effects
======================================== */
@keyframes nodeGlow {
0%, 100% {
box-shadow: 0 0 20px rgba(255, 255, 255, 0.1);
}
50% {
box-shadow: 0 0 30px rgba(255, 255, 255, 0.2);
}
}
.node {
animation: nodeGlow 4s ease-in-out infinite;
}
/* ========================================
Print Styles
======================================== */
@media print {
body {
background: white;
color: black;
}
.diagram-container {
background: white;
}
.network-diagram {
background: white;
border: 2px solid #333;
}
.node {
background: white;
border: 2px solid #333;
color: black;
}
.connection {
opacity: 1;
}
}