## Major Changes - Moved all testdrive-jsui assets from root to capabilities/testdrive-jsui/ - Consolidated directory structure: js/, static/css/, static/images/, static/templates/ - Implemented plugin self-declaration (get_plugin_source_dir, get_asset_paths) - Removed hardcoded plugin discovery from rendering.py - Updated all asset paths to be relative to capability root ## Architecture Improvements - Single source of truth for all testdrive-jsui assets - Plugin declares its own location (no hardcoded paths) - Generic plugin discovery using hasattr check - Clean separation: all JS in .js files, no code mixing - Standalone capability ready for independent use ## Files Changed - markitect/plugins/testdrive_jsui.py: Added self-declaration methods - markitect/plugins/rendering.py: Removed hardcoded discovery - capabilities/testdrive-jsui/README.md: Added standalone usage documentation - Moved 17 asset files to consolidated structure - Deleted obsolete /testdrive-jsui/ root directory ## Testing - All 17 assets verified and working - Tested via CLI: markitect md-render --engine testdrive-jsui - Full document rendering successful Prepares testdrive-jsui to become a git submodule with proper dependency management. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
129 lines
2.4 KiB
CSS
129 lines
2.4 KiB
CSS
/**
|
|
* TestDrive JSUI Control Panel Styles
|
|
*
|
|
* Styles for individual control panels
|
|
*/
|
|
|
|
/* Contents Control (Northwest) */
|
|
.contents-control {
|
|
max-height: 300px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.contents-control .toc-item {
|
|
padding: 0.25rem 0;
|
|
cursor: pointer;
|
|
border-radius: 3px;
|
|
padding-left: 0.5rem;
|
|
}
|
|
|
|
.contents-control .toc-item:hover {
|
|
background-color: #f8f9fa;
|
|
}
|
|
|
|
.contents-control .toc-h1 { font-weight: bold; }
|
|
.contents-control .toc-h2 { margin-left: 1rem; }
|
|
.contents-control .toc-h3 { margin-left: 2rem; font-size: 0.9em; }
|
|
|
|
/* Status Control (East) */
|
|
.status-control {
|
|
text-align: center;
|
|
}
|
|
|
|
.status-metric {
|
|
padding: 0.5rem;
|
|
margin: 0.25rem 0;
|
|
background: #f8f9fa;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.status-metric .metric-value {
|
|
font-size: 1.5em;
|
|
font-weight: bold;
|
|
color: #007bff;
|
|
}
|
|
|
|
.status-metric .metric-label {
|
|
font-size: 0.8em;
|
|
color: #6c757d;
|
|
}
|
|
|
|
/* Debug Control (Southeast) */
|
|
.debug-control {
|
|
font-family: monospace;
|
|
}
|
|
|
|
/* Removed debug-header styles - using base class title formatting */
|
|
|
|
.debug-control .debug-logs {
|
|
max-height: 200px;
|
|
overflow-y: auto;
|
|
background: #f8f9fa;
|
|
padding: 0.5rem;
|
|
margin: 0 -0.75rem -0.75rem -0.75rem;
|
|
border-radius: 0 0 5px 5px;
|
|
font-size: 0.8em;
|
|
}
|
|
|
|
/* Edit Control (Northeast) */
|
|
.edit-control {
|
|
text-align: center;
|
|
}
|
|
|
|
.edit-control .control-button {
|
|
display: block;
|
|
width: 100%;
|
|
margin: 0.5rem 0;
|
|
padding: 0.5rem;
|
|
background: #007bff;
|
|
color: #fff;
|
|
border: none;
|
|
border-radius: 4px;
|
|
cursor: pointer;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
.edit-control .control-button:hover {
|
|
background: #0056b3;
|
|
}
|
|
|
|
.edit-control .control-button:disabled {
|
|
background: #6c757d;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.edit-control .control-button.danger {
|
|
background: #dc3545;
|
|
}
|
|
|
|
.edit-control .control-button.danger:hover {
|
|
background: #c82333;
|
|
}
|
|
|
|
/* Control panel animations */
|
|
.markitect-control-panel {
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.markitect-control-panel.entering {
|
|
opacity: 0;
|
|
transform: scale(0.9);
|
|
}
|
|
|
|
.markitect-control-panel.entered {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
|
|
/* Responsive adjustments */
|
|
@media (max-width: 768px) {
|
|
.markitect-control-panel {
|
|
position: fixed !important;
|
|
top: auto !important;
|
|
bottom: 10px !important;
|
|
left: 10px !important;
|
|
right: 10px !important;
|
|
transform: none !important;
|
|
max-width: none !important;
|
|
}
|
|
} |