Files
markitect-main/testdrive-jsui/static/css/controls.css
tegwick 409d1a8d9f feat: complete asset deployment for plugin engines
**Asset Deployment Infrastructure:**
- Enhanced RenderingEngineManager with complete asset deployment
- Automatic plugin source directory discovery and asset copying
- File system operations with proper directory structure preservation
- Comprehensive error handling for missing assets

**CLI Integration:**
- Automatic asset deployment when using plugin engines
- Verbose output showing deployment progress and statistics
- Asset verification and accessibility validation
- Production-ready deployment to _markitect/plugins/ structure

**TestDrive JSUI Assets:**
- Complete CSS asset suite (editor, controls, GitHub theme)
- Placeholder image assets for testing deployment
- Proper asset organization following plugin conventions
- All 18 assets now deployed correctly

**Testing Infrastructure:**
- Comprehensive asset deployment testing
- CLI integration verification with asset shipping
- File existence and accessibility validation
- Complete directory structure verification

**Key Features:**
- Assets deployed to `_markitect/plugins/testdrive-jsui/` when using --edit
- HTML references match deployed asset locations
- 18 total assets: 12 JS, 3 CSS, 3 images
- Automatic deployment without --ship-assets flag needed
- Clean separation of development vs production asset handling

**Example Output:**
```
🎯 Using rendering engine: testdrive-jsui (supports: edit, view)
📦 Deploying assets for engine 'testdrive-jsui'...
📄 Deployed 18 asset files
   js: 12 files
   css: 3 files
   images: 3 files
 Rendered with INTERACTIVE editing mode
```

This fixes the "HTML assets not found" issue when using explicit
output directories with plugin engines. All plugin assets are now
properly deployed and accessible.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 09:20:37 +01:00

135 lines
2.5 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;
}
.debug-control .debug-header {
background: #343a40;
color: #fff;
padding: 0.5rem;
margin: -0.75rem -0.75rem 0.5rem -0.75rem;
border-radius: 5px 5px 0 0;
}
.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;
}
}